2012-12-09 128 views
7

我有一段時間沒有使用我的python /虛擬環境,但是我也安裝了virtualenvironment包裝器。爲什麼你需要設置WORKON_HOME環境變量?

我的問題是,在文檔頁面,它說要做到這一點:

export WORKON_HOME=~/Envs 
$ mkdir -p $WORKON_HOME 
$ source /usr/local/bin/virtualenvwrapper.sh 
$ mkvirtualenv env1 

我只是這樣做在我的提示:

source /usr/local/bin/virutalenvwrapper.sh 

現在我可以列出並選擇環境做:

>workon 

>workon envtest1 

我的問題是,因爲這對我有用,我很困惑,爲什麼我應該創造一個環境變量能夠WORKON_HOME並將其指向〜/ Envs文件夾?這有什麼作用,以及我的工作如何正常工作,沒有它?我沒有那個/ Envs文件夾(我知道腳本創建它)。

參考:http://virtualenvwrapper.readthedocs.org/en/latest/

回答

8

如果WORKON_HOME沒有設置,默認的virtualenv文件夾將被設置爲~/.virtualenvs
(見virtualenvwrapper.sh l.118

您還將使用WORKON_HOME指定要pip要使用的文件夾( export PIP_VIRTUALENV_BASE=$WORKON_HOME

來源:virtualenvwrapper.readthedocs.org : Tying to pip’s virtualenv support

+1

'PIP_VIRTUALENV_BASE'已棄用:https://bitbucket.org/dhellmann/virtualenvwrapper/issue/225/pip_virtualenv_base-and –

+0

我的家庭項目文件夾是'〜/ Projects'。我偶然發現了這個答案,因爲我遇到了同樣的問題**和**我無法強制它識別何時有'$ WORKON_HOME'變量集。最後我做了一個'ln -s〜/ Projects〜/ .virtualenvs'。問題解決了。謝謝(你的)信息。 –

+1

因此,如果您將這些項目的envs設置爲默認的〜/ .virtualenvs,那麼$ WORKON_HOME確實是可選的,然後下一個問題是,是否有任何動機使用不同於默認文件夾? – RayLuo

0

我很困惑,爲什麼我應該創建一個環境變量 WORKON_HOME並將其指向〜/ Envs文件夾?

它是可選的。你很困惑(就像我一樣),因爲文檔很混亂。

這是怎麼回事,我的工作怎麼樣沒有問題呢?

它告訴virtualenvwrapper要搜索Python環境的文件夾。命令workon會搜索路徑WORKON_HOME是否已定義,或者~/.virtualenvs如果未定義,那麼默認情況下它會起作用。

定義不同的WORKON_HOME目錄的用例是,如果你有不同的環境,你可以使用virtualenvwrapper。例如,如果將虛擬env備份保存到不同的文件夾或讓多個用戶想要維護自己的環境。