2015-04-25 2 views
3

Я не уверен, действительно ли проблема связана с супервизором, но вот что я получаю, когда пытаюсь запустить его. Похоже, немного как вопрос будет связано с самой python2 ...KeyError: «zope» при запуске некоторых приложений Python (supervisord, gunicorn, ...)

$ supervisord 
Traceback (most recent call last): 
    File "/usr/bin/supervisord", line 5, in <module> 
    from pkg_resources import load_entry_point 
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2727, in <module> 
    add_activation_listener(lambda dist: dist.activate()) 
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 700, in subscribe 
    callback(dist) 
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2727, in <lambda> 
    add_activation_listener(lambda dist: dist.activate()) 
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2230, in activate 
    map(declare_namespace, self._get_metadata('namespace_packages.txt')) 
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1815, in declare_namespace 
    path = sys.modules[parent].__path__ 
KeyError: 'zope' 

Моя память может быть предает меня, но я чувствую, вспомнив, что случилось со мной, при попытке запустить другую программу, но я не помните, какой атм. [1]

Я использую supervisord для monitore, если один процесс аварии и перезапустить его автоматически, но если он сбой непрерывно, он отказывается, и я должен убить supervisord и перезапустить его вручную. Он работал, но не больше.

EDIT: [1] Также случается, когда я пытаюсь запустить стрельбу.

$ /var/www/bin/gunicorn -b 127.0.0.1:5000 index:app 
Traceback (most recent call last): 
    File "/var/www/bin/gunicorn", line 5, in <module> 
    from pkg_resources import load_entry_point 
    File "/var/www/lib/python3.3/site-packages/pkg_resources.py", line 3027, in <module> 
    add_activation_listener(lambda dist: dist.activate()) 
    File "/var/www/lib/python3.3/site-packages/pkg_resources.py", line 741, in subscribe 
    callback(dist) 
    File "/var/www/lib/python3.3/site-packages/pkg_resources.py", line 3027, in <lambda> 
    add_activation_listener(lambda dist: dist.activate()) 
    File "/var/www/lib/python3.3/site-packages/pkg_resources.py", line 2514, in activate 
    list(map(declare_namespace, self._get_metadata('namespace_packages.txt'))) 
    File "/var/www/lib/python3.3/site-packages/pkg_resources.py", line 2082, in declare_namespace 
    path = sys.modules[parent].__path__ 
KeyError: 'zope' 

EDIT 2: Кажется, связаны с этим вопросом: https://bugs.launchpad.net/ubuntu/+source/zope.app.pagetemplate/+bug/851038 ... но я не уверен, что с этим делать. EDIT EDIT: Ну, может быть, нет, это 4-х лет.

Да Я также использую сервер Ubuntu.

+0

Пакет в пространстве имен 'zope' является b0rken, каким-то образом. Вы удалили что-то вроде 'zope.interface' или подобных действий? –

+0

Кажется, что 'supervisord' установлен неправильно. Попробуйте переустановить его. – Valijon

+0

@Valijon: нет, другой упаковка нет. –

ответ

2

Основываясь на long discussion in chat, проблема в том, что вы перепутали свой env таким образом, что некоторые установки python в вашей системе запутываются.

Ваш файл .bashrc содержит строку export PYTHONPATH=/usr/local/lib/python3.3/dist-packages/. Тем не менее, все Pythons будет использовать этот путь, даже Python 2.

Вы установили супервизор и gunicorn с apt, и эти версии используют python2. Когда вы запускаете gunicorn, эта команда использует python2, которая подбирает PYTHONPATH с помощью Python 3 на нем. Что-то вдоль линии пытается проверить путь и каким-то образом запутаться.

Удалить строку в файле .bashrc, модифицируя PYTHONPATH.

+0

По-прежнему интересно, почему он не поднимал этот вопрос раньше (в течение нескольких месяцев), но я рад, что он наконец исправлен! Спасибо вам за терпение и помощь. – JeromeJ

Смежные вопросы