我正在尝试添加PYTHONPATH环境变量的路径,该路径只能从特定的virtualenv环境中看到。
我在virtualenv命令提示符下尝试了SET PYTHONPATH=...
,但是为整个环境设置了变量。
我如何实现这一目标?
答案 0 :(得分:140)
您通常可以通过using .pth
files避免对PYTHONPATH做任何事情。只需在你的virtualenv的site-packages文件夹中放一个扩展名为.pth的文件(任何basename都可以),例如: lib\python2.7\site-packages
,包含包的唯一内容的目录的绝对路径。
答案 1 :(得分:89)
如果您正在使用virtualenv
,您可能也应该使用virtualenvwrapper,在这种情况下,您可以使用add2virtualenv命令为当前virtualenv的Python路径添加路径:
add2virtualenv directory1 directory2 …
答案 2 :(得分:5)
您也可以尝试将符号链接添加到您的virtualenv。
例如。 1)激活你的virtualenv 2)运行python 3)import sys并检查sys.path 4)你会在那里找到python搜索路径。选择其中一个(例如网站包) 5)去那里为你的包创建符号链接,如: ln -s path-to-your-package name-with-which-you-be-imported
这样你甚至可以在不激活virtualenv的情况下导入它。只需尝试:path-to-your-virtualenv-folder / bin / python 并导入你的包裹。
答案 3 :(得分:0)
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来避免混乱路径
答案 4 :(得分:0)
如果您使用virtualenvwrapper,则
$ cd to the parent folder
$ add2virtualenv folder_to_add
控制台将显示
Warning: Converting "folder_to_add" to "/absoutle/path/to/folder_to_add"
就是这样,你应该很好走
答案 5 :(得分:0)
正如上面@crimeminister 所建议的,您可以像@Aneesh Panoli 所建议的那样使用 virtualenvwrapper
然后 add2virtualenv
。如果 add2virtualenv
在 pip install virtualenvwrapper
后不起作用,则 follow instructions in the top voted answer by @chirinosky here。对我有用。