【发布时间】:2010-11-03 08:44:08
【问题描述】:
环境:debian 4.0
Python 2.4
我的“项目”安装在:
/usr/lib/python2.4/site-packages/project。
但我想使用我的工作副本,而不是位于以下位置的已安装副本:
/home/me/dev/project/src
所以我要做的是:
导出 PYTHONPATH=/home/me/dev/project/src
ipython
import foo # 在 src 中
foo.__file__*/usr/lib/python2.4/site-packages/project/foo.py*
而不是:
/home/me/dev/project/src/project/foo.py
怎么会?我尝试检查路径(已完成上面的导出),我看到的是:
导入系统,操作系统
系统路径
['', '/usr/bin', '/usr/lib/python2.4/site-packages', '/home/me/dev/project/src', '/usr/lib/python24.zip', '/usr/lib/python2.4', '/usr/lib/python2.4/plat-linux2', '/usr/lib/python2.4/lib-tk', '/usr/lib/python2.4/lib-dynload', '/usr/local/lib/python2.4/site-packages', '/usr/lib/python2.4/site-packages/PIL', '/var/lib/python-support/python2.4', '/usr/lib/python2.4/site-packages/IPython/Extensions', '/home/me/.ipython']
os.environ['PYTHONPATH']
/home/me/dev/project/src
【问题讨论】:
-
机器正常工作:> export PYTHONPATH=foo > ipython > import sys > sys.path = [ '/etc/python2.4', '/home/me/foo', ' /usr/lib/python24.zip'、'/usr/lib/python2.4'、'/usr/lib/python2.4/plat-linux2'、'/usr/lib/python2.4/lib-tk' , '/usr/lib/python2.4/lib-dynload', '/usr/local/lib/python2.4/site-packages', '/usr/lib/python2.4/site-packages', '/ var/lib/python-support/python2.4', ] 在无法正常工作的机器中,/usr/lib/python2.4/site-packages 在列表中排在前面。 ..
-
让我们提出一些精确的问题:每个人都同意,如果我将 PYTHONPATH 设置为有效的模块路径,无论如何它都应该首先加载这个模块?每个人都同意 python 尝试按照 sys.path 的顺序加载模块?如果 aboce 是正确的,为什么 python 不在 sys.path 的开头(在鸡蛋之后)插入 PYTHONPATH?