2012-05-24 23 views
70

我正嘗試向PYTHONPATH環境變量添加一個路徑,該路徑只能在特定的virtualenv環境中可見。如何在virtualenv中添加PYTHONPATH的路徑

我在virtualenv命令提示符下嘗試SET PYTHONPATH=...,但是它爲整個環境設置了變量。

我該如何做到這一點?

回答

123

您通常可以避免必須通過using .pth files與PYTHONPATH做任何事情。只需在virtualenv的site-packages文件夾中放置一個.pth擴展名的文件(任何basename works),例如lib\python2.7\site-packages,包含您的包的目錄的絕對路徑作爲其唯一內容。

80

如果您使用virtualenv,你應該也可以使用virtualenvwrapper,在這種情況下,你可以使用add2virtualenv命令路徑添加到Python路徑當前的virtualenv:

add2virtualenv directory1 directory2 …

+0

,這是否實用從何而來?我試過pip安裝virtualenvwrapper,並沒有得到它。 – AlanObject

+0

https://bitbucket.org/dhellmann/virtualenvwrapper – crimeminister

+2

如何從virtualenv中刪除? – silverdagger

4

你也可以嘗試將符號鏈接添加到您的virtualenv中。

例如。 1)激活你的virtualenv 2)運行python 3)import sys並檢查sys.path 4)你會在那裏找到python的搜索路徑。選擇其中一個(例如站點包) 5)去那裏創建符號鏈接到你的軟件包,例如: ln -s路徑到你的軟件包名稱 - 你將要導入的文件

這樣,即使不激活你的virtualenv,你也應該可以導入它。只需嘗試:path-to-your-virtualenv-folder/bin/python 並導入你的軟件包。

+0

我想這是downvoted使用符號鏈接,而不是.pth文件。它雖然爲我工作,所以,很難過。 –

0

在Python 3.6.4

import sys 
import os 

print(str(sys.path)) 

dir_path = os.path.dirname(os.path.realpath(__file__)) 
print(f"current working dir: {dir_path}") 

sys.path.insert(0, dir_path) 

我強烈建議你使用的virtualenv和virtualenvwrapper,以避免弄亂路徑

相關問題