如果您想使用给定的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
中的特殊site-packages
。
有没有办法从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
个库)。
答案 0 :(得分:1)
对我而言:
$PYTHONPATH="/home/farhad" python -c 'import sys; print sys.path[:2]'
['', '/home/farhad']
$
答案 1 :(得分:1)
在我看来,正如您在评论中描述的那样,您的特定用例将通过使~/.local/.../numpy
符号链接,然后更改该符号链接而不是直接更改导入路径来涵盖。