简体   繁体   中英

Python does not find Modules installed by easy_install after dist-upgrade to Wheezy

I had a Debian Squeeze system, with the following script:

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

After upgrade to Wheezy, the script failed with

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

I installed the modules (Trac and others) again with easy_install , but that didn't solve the problem. However, this hack worked:

#!/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 has the same problem, and I was not able to fix it yet.

What's wrong here? How can I avoid this evil hack?

It sounds like a problem with python search path when upgrading from Squeeze to Wheezy. You can try to debug sys.path to find if there is any problem. You should also check easy-install.pth to modify the site installed package.

I highly recommend to use virtualenv to manage python packages, so you won't have python path problem or package conflict when you move across machines or operation systems.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM