如果您想使用给定的python二进制文件,可以在PATH之前加上。
如果您想使用给定的libpython,可以在LD_LIBRARY_PATH前面加上
现在,假设您想使用给定的包目录。我试过PYTHONPATH --但它不起作用:
$ python -c 'import sys; print sys.path[:2]'
['', '/home/boris/.local/lib/python2.7/site-packages']
$ PYTHONPATH="/home/boris/test/lib/python2.7/site-packages" python -c 'import sys; print sys.path[:2]'
['', '/home/boris/.local/lib/python2.7/site-packages']为了做到这一点,您必须在脚本中这样做:
import sys
sys.path.insert(0, "/home/boris/test/lib/python2.7/site-packages")或使默认情况下的特殊usercustomize.py具有相同的内容。
是否有一种从shell修改sys.path的方法?
我要找的是:
$ python -c 'import sys; print sys.path[:2]'
['', '/home/boris/.local/lib/python2.7/site-packages']
$ your-shell-command
$ python -c 'import sys; print sys.path[:2]'
['/home/boris/test/lib/python2.7/site-packages', '']编辑
如果dir排在第二位,我看不出有什么坏处:
['', '/home/boris/test/lib/python2.7/site-packages']但
~: PYTHONPATH="/home/farhad" python -c 'import sys; print sys.path[:2]'
['', '/home/boris/.local/lib/python2.7/site-packages']对我不起作用。可能是因为我有usercustomize.py (请看,在系统范围的库之前,我也想要~/.local库)。
发布于 2013-11-13 21:19:43
对我来说,工作:
$PYTHONPATH="/home/farhad" python -c 'import sys; print sys.path[:2]'
['', '/home/farhad']
$发布于 2013-11-13 21:25:55
在我看来,正如您在注释中所描述的那样,您的特定用例将通过使~/.local/.../numpy成为一个符号链接,然后更改该符号链接,而不是直接更改导入路径来实现。
https://stackoverflow.com/questions/19964470
复制相似问题