gevent installare su x86_64 non riesce: “simbolo indefinito: evhttp_accept_socket”
Domanda
Sto cercando di installare gevent su una nuova CentOS 5.3 EC2 64 bit del sistema.
Dal momento che la versione disponibile in libevent yum era troppo vecchi per un altro pacchetto (beanstalkd) I compilato / libevent-1.4.13-stable
installato manualmente utilizzando il seguente comando:
./configure --prefix=/usr && make && make install
Questa è l'uscita dal gevent installazione:
[gevent-0.12.2]# python setup.py build --libevent /usr/lib
Using libevent 1.4.13-stable: libevent.so
running build
running build_py
running build_ext
Linking /usr/src/gevent-0.12.2/build/lib.linux-x86_64-2.6/gevent/core.so to
/usr/src/gevent-0.12.2/gevent/core.so
[gevent-0.12.2]# cd /path/to/my/project
[project]# python myscript.py
Traceback (most recent call last):
File "myscript.py", line 9, in <module>
from gevent.wsgi import WSGIServer as GeventServer
File "/usr/lib/python2.6/site-packages/gevent/__init__.py", line 32, in <module>
from gevent.core import reinit
ImportError: /usr/lib/python2.6/site-packages/gevent/core.so: undefined symbol: evhttp_accept_socket
Ho seguito esattamente la stessa procedura su un'istanza VirtualBox locale (32-bit) e non sto vedendo eventuali errori.
Come faccio a risolvere questo problema?
Soluzione
più semplice correzione è stato quello di clonare il git repository , passare al ramo wip-all
, e python setup.py build_libevent build install
familiare che palio e costruisce libevent staticamente contro gevent:
# git clone http://github.com/schmir/gevent.git
# cd gevent
# git branch -a
* upstream
origin/HEAD
origin/close-socket-cancel-event
origin/pywsgi-without-basehttpserver
origin/upstream
origin/wip-all
origin/wip-setup-config
# git checkout origin/wip-all
# python setup.py build_libevent build install
Maggiori informazioni qui .