Python не находит модули, установленные easy_install после dist-upgrade до Wheezy

У меня была система Debian Squeeze со следующим скриптом:

#!/bin/sh
/srv/trac/hooks/trac-post-commit-hook -p "/srv/trac" -r "$2"

После обновления до Wheezy произошел сбой сценария с

Traceback (most recent call last):
  File "/srv/trac/hooks/trac-post-commit-hook", line 106, in <module>
    from trac.env import open_environment
ImportError: No module named trac.env

Я снова установил модули (Trac и другие) с помощью easy_install, но это не решило проблему. Однако этот хак сработал:

#!/bin/sh
export PYTHONPATH="/usr/local/lib/python2.7/dist-packages/Trac-0.12-py2.7.egg"
/srv/trac/hooks/trac-post-commit-hook -p "/srv/trac" -r "$2"

У WSGI та же проблема, и я пока не смог ее исправить.

Что здесь не так? Как я могу избежать этого злого взлома?


person Christoph Walesch    schedule 19.10.2014    source источник


Ответы (1)


Похоже на проблему с путем поиска python при обновлении с Squeeze на Wheezy. Вы можете попробовать отладить sys.path Чтобы найти, есть ли какие-либо проблемы. Вы также должны проверить easy-install.pth, чтобы изменить установленный сайтом пакет.

Я настоятельно рекомендую использовать virtualenv для управления пакетами python, чтобы у вас не было проблем с путями python. или конфликт пакетов при перемещении между машинами или операционными системами.

person Bao Nguyen    schedule 20.10.2014
comment
Спасибо, Trac-0.12-py2.7.egg не было в sys.path. Добавление его в /usr/local/lib/python2.7/dist-packages/easy-install.pth решило проблему. - person Christoph Walesch; 20.10.2014