سؤال

أحاول التثبيت جيفنت على EC2 Centos الطازجة 5.3 64 بت النظام.

نظرًا لأن إصدار Libevent المتاح في Yum كان قديمًا جدًا بالنسبة لحزمة أخرى (Beanstalkd) قمت بتجميع/تثبيت libevent-1.4.13-stable استخدام الأمر التالي يدويًا:

./configure --prefix=/usr && make && make install

هذا هو الإخراج من تثبيت جيفنت:

[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

لقد اتبعت بالضبط نفس الخطوات على مثيل VirtualBox المحلي (32 بت) وأنا لا أرى أي أخطاء.

كيف يمكنني إصلاح هذا؟

هل كانت مفيدة؟

المحلول

كان أسهل إصلاح هو استنساخ مستودع GIT, ، التبديل إلى wip-all فرع ، وركض python setup.py build_libevent build install الذي يمسك ويبني libevent بشكل ثابت ضد جيفنت:

# 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

معلومات اكثر هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top