gevent installer sur x86_64 échoue: « symbole non défini: evhttp_accept_socket »
Question
Je suis en train d'installer gevent sur une nouvelle EC2 CentOS 5.3 64 bits système.
Depuis la version libevent disponible en miam était trop vieux pour un autre paquet (beanstalkd) Je libevent-1.4.13-stable
compilé / installé manuellement à l'aide de la commande suivante:
./configure --prefix=/usr && make && make install
Ceci est la sortie de l'installation gevent:
[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
J'ai suivi exactement les mêmes étapes sur une instance de VirtualBox locale (32 bits) et je ne vois aucune erreur.
Comment puis-je résoudre ce problème?
La solution
fix était plus facile de cloner le dépôt git , passez à la branche wip-all
, et exécuter python setup.py build_libevent build install
qui grappins et construit libevent statiquement contre 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow