仅当我从另一个文件导入包时,sys.path 才会更改。
在我的 pyenv 中:
$(env) python
>>> import sys
>>> print(sys.path)
['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/var/www/lib/python3.4/site-packages']
在 fileImport.py (在我的虚拟环境中):
# fileImport.py
import sys
print(sys.path)
命令 :
$(env) python fileImport.py
给了我同样的好结果!
但是当我尝试从 anotherfile.py 导入 fileImport 包时,如下所示:
#!/usr/bin/env python
# anotherfile.py
import fileImport
sys.path 结果更改:
$(env) python anotherfile.py
['/var/www', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']
我像这样安装pyenv:
$ sudo apt-get install python3.4-venv python3-dev
$ pyvenv-3.4 env
我不明白为什么从文件导入使用来自我的系统而不是来自我的虚拟环境的 sys.path。
预先感谢您的帮助。