解决 easy-install.pth 文件
Work around easy-install.pth file
当该模块也在系统范围 easy-install.pth
文件?
$> more /usr/lib/python2.7/site-packages/easy-install.pth
import sys; sys.__plen = len(sys.path)
./foo-1.1.09-py2.7-linux-x86_64.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:];
p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)
foo
模块设置如下:
foo/
|---- __init__.py
|---- test.py
|---- module1.py
|---- etc.
我想从命令行执行脚本,但是当我这样做时
/home/dave/src$> python foo/test.py
该脚本导入已在 /usr
下安装的版本;如果我的工作目录是 /home/dave/src/foo
.
也是一样
当然,我的PYTHONPATH
前面有/home/dave/src
。
将 easy-install.pth
前置到 PYTHONPATH
的可行解决方法是什么?
使用 -S
选项和完全明确的路径。
例如
$> PYTHONPATH=$HOME/src:/usr/lib/python2.7/site-packages python -S foo/test.py
当该模块也在系统范围 easy-install.pth
文件?
$> more /usr/lib/python2.7/site-packages/easy-install.pth
import sys; sys.__plen = len(sys.path)
./foo-1.1.09-py2.7-linux-x86_64.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:];
p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)
foo
模块设置如下:
foo/
|---- __init__.py
|---- test.py
|---- module1.py
|---- etc.
我想从命令行执行脚本,但是当我这样做时
/home/dave/src$> python foo/test.py
该脚本导入已在 /usr
下安装的版本;如果我的工作目录是 /home/dave/src/foo
.
当然,我的PYTHONPATH
前面有/home/dave/src
。
将 easy-install.pth
前置到 PYTHONPATH
的可行解决方法是什么?
使用 -S
选项和完全明确的路径。
例如
$> PYTHONPATH=$HOME/src:/usr/lib/python2.7/site-packages python -S foo/test.py