gpt4 book ai didi

python - 如何在 cygwin 下用 python 构建 gevent?

转载 作者:太空宇宙 更新时间:2023-11-03 19:20:00 25 4
gpt4 key购买 nike

我想在各种环境中一致地使用Python。这些环境之一是 cygwin。我想使用的组件之一是 gevent (http://www.gevent.org/intro.html)。在 cygwin 下,我正在运行 python 2.7(本地构建,此处描述的一行更改是构建所需的: http://www.gossamer-threads.com/lists/python/python/976956 )。

gevent 需要 libevent (http://libevent.org/)。

libevent 似乎在 cygwin 下构建得很好(./configure && make && make install)。

但是,在构建 gevent (pip install gevent) 时,它会失败,因为 libevent 构建了静态库(例如/usr/local/lib/libevent.a),而 gevent 构建需要共享库。因此:

gcc -shared -Wl,--enable-auto-image-base build/temp.cygwin-1.7.13-i686-2.7/gevent/core.o -L/usr/local/lib/python2.7/config -levent -lpython2.7 -o build/lib.cygwin-1.7.13-i686-2.7/gevent/core.dll

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -levent

同时,如果我尝试让 gevent 静态链接(CFLAGS='-static' pip install gevent),-levent 仍然会失败,并且会出现大量关于取消引用类型双关指针将如何破坏严格别名规则的警告以及一些警告。其他 ld 失败:

gevent/core.c:21835:警告:取消引用类型双关指针将违反严格别名规则

....
gevent/core.c:21836: warning: dereferencing type-punned pointer will break strict-aliasing rules

gcc -shared -Wl,--enable-auto-image-base -static build/temp.cygwin-1.7.13-i686-2.7/gevent/core.o -L/usr/local/lib/python2.7/config -levent -lpython2.7 -o build/lib.cygwin-1.7.13-i686-2.7/gevent/core.dll

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -levent

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lpython2.7

...所以...

我认为我需要告诉 libevent 构建 .dll 而不是 .a,但 libevent 的 Makefile 实际上没有 .a 目标,而且我不清楚如何更改所使用的抽象才能实现此目的。

那么,退一步:如何在 cygwin 下的 python 2.7 下安装 gevent?

最佳答案

您可以尝试来自http://code.google.com/p/gevent/downloads/list的测试版吗? ?

它不需要任何外部依赖项。

关于python - 如何在 cygwin 下用 python 构建 gevent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10078798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com