Answers:
通常,您可以通过使用.pth
files来避免对PYTHONPATH做任何事情。只需在您的virtualenv的site-packages文件夹中放入一个扩展名为.pth的文件(任何基本名称均有效),例如lib\python2.7\site-packages
,将包含软件包的目录的绝对路径作为其唯一内容。
如果使用virtualenv
,则可能还应该使用virtualenvwrapper,在这种情况下,可以使用add2virtualenv命令将路径添加到当前virtualenv的Python路径:
add2virtualenv directory1 directory2 …
add2virtualenv
不会修改$ PYTHONPATH,而是修改sys.path。
add2virtualenv
,则可以看到它正在修改sys.path。我同意文档听起来像是在修改PYTHONPATH
环境变量,但这似乎是不正确的。bitbucket.org/virtualenvwrapper/virtualenvwrapper/src/…–
您也可以尝试将符号链接放入您的virtualenv之一。
例如。1)激活您的virtualenv 2)运行python 3)导入sys并检查sys.path 4)您将在那里找到python搜索路径。选择其中一个(例如站点软件包)5)转到其中,并创建指向您软件包的符号链接,例如:ln -s您要导入的软件包名称路径
这样,即使不激活virtualenv,您也应该能够导入它。只需尝试:进入您的virtualenv-folder / bin / python路径并导入您的包。
如果您使用virtualenvwrapper,
$ cd to the parent folder
$ add2virtualenv folder_to_add
控制台将显示
Warning: Converting "folder_to_add" to "/absoutle/path/to/folder_to_add"
就是这样,您应该很好
import sys
import os
print(str(sys.path))
dir_path = os.path.dirname(os.path.realpath(__file__))
print("current working dir: %s" % dir_path)
sys.path.insert(0, dir_path)
我强烈建议您使用virtualenv和virtualenvwrapper以避免路径混乱。