如何在virtualenv中添加PYTHONPATH的路径

Fla*_*ien 94 python virtualenv

我正在尝试添加PYTHONPATH环境变量的路径,该路径只能从特定的virtualenv环境中看到.

SET PYTHONPATH=...在virtualenv命令提示符下尝试过,但是它为整个环境设置了变量.

我如何实现这一目标?

Dou*_*gal 143

您通常可以通过使用.pth文件避免对PYTHONPATH执行任何操作.只需将一个扩展名为.pth的文件(任何basename都可以)放在你的virtualenv的site-packages文件夹中,例如lib\python2.7\site-packages,使用包含你的包的目录的绝对路径作为它的唯一内容.

  • 为了更正OP,@JamieMarshall,文档说PTH 文件中的路径可以相对于PTH 路径。 (2认同)

小智 92

如果您正在使用virtualenv,您可能也应该使用virtualenvwrapper,在这种情况下,您可以使用add2virtualenv命令为当前virtualenv的Python路径添加路径:

add2virtualenv directory1 directory2 …

  • 如何从virtualenv中删除? (3认同)
  • 我不确定这个命令在编写时是如何工作的,但`add2virtualenv`不会修改$ PYTHONPATH,而是修改sys.path. (2认同)

Ane*_*oli 6

如果您使用的是 virtualenvwrapper,

$ cd to the parent folder
$ add2virtualenv  folder_to_add
Run Code Online (Sandbox Code Playgroud)

控制台将显示

Warning: Converting "folder_to_add" to "/absoutle/path/to/folder_to_add"
Run Code Online (Sandbox Code Playgroud)

就是这样,你应该可以走了


Sla*_*o-t 5

您还可以尝试将符号链接放置到您的 virtualenv 之一。

例如。1)激活你的virtualenv 2)运行python 3)导入sys并检查sys.path 4)你会在那里找到python搜索路径。选择其中之一(例如站点包) 5)去那里并创建指向您的包的符号链接,例如:ln -s path-to-your-package name-with-which-you'll-be-importing

这样,即使不激活 virtualenv,您也应该能够导入它。只需尝试:path-to-your-virtualenv-folder/bin/python 并导入您的包。