Pyenv-virtualenv是一個Pyenv插件,可為Unix型系統上的Python管理VirtualEnvs和Conda環境提供功能。
(注意:如果您是Virtualenvwrapper的現有用戶,並且喜歡它,則Pyenv-Virtualenvwrapper可能會幫助您(此外)管理Virtualenvs。)
這將將最新的開發版本的Pyenv-Virtualenv安裝到$(pyenv root)/plugins/pyenv-virtualenv
目錄中。
重要說明:如果將PYENV安裝到非標準目錄中,請確保將此倉庫克隆到安裝到何處的“插件”目錄中。
從該目錄內部可以:
git pull
獲取最新的開發版本,以下載最新的更改。在插件目錄中查看pyenv-virtualenv
git clone https://github.com/pyenv/pyenv-virtualenv.git $( pyenv root ) /plugins/pyenv-virtualenv
對於魚殼:
git clone https://github.com/pyenv/pyenv-virtualenv.git (pyenv root)/plugins/pyenv-virtualenv
(可選)將pyenv virtualenv-init
添加到您的外殼中,以使Virtualenvs自動激活。這是完全可選的,但非常有用。請參閱下面的“激活Virtualenv”。
echo ' eval "$(pyenv virtualenv-init -)" ' >> ~ /.bashrc
魚殼注意:將其添加到您的~/.config/fish/config.fish
中
status --is-interactive ; and pyenv virtualenv-init - | source
ZSH注意:修改您的~/.zshrc
文件,而不是~/.bashrc
。
重新啟動您的外殼以啟用pyenv-virtualenv
exec " $SHELL "
MACOS用戶可以使用Homebrows Package Manager安裝Pyenv-Virtualenv。這將使您訪問pyenv-virtualenv
命令。如果已安裝了Pyenv,則還可以使用pyenv virtualenv
命令。
如果您使用自製pyenv安裝了Pyenv,這是推薦的安裝方法。
brew install pyenv-virtualenv
或者,如果您想安裝最新的開發版本:
brew install --HEAD pyenv-virtualenv
安裝後,您仍然需要執行pyenv shell設置步驟,然後添加
eval " $( pyenv virtualenv-init - ) "
到您的Shell的.rc
文件(如警告中所述)。您只需要這樣做一次。
pyenv virtualenv
與Pyenv一起使用要為Pyenv使用的Python版本創建Virtualenv,請運行pyenv virtualenv
,指定所需的Python版本和Virtualenv Directory的名稱。例如,
pyenv virtualenv 2.7.10 my-virtual-env-2.7.10
將在$(pyenv root)/versions
中創建一個稱為my-virtual-env-2.7.10
的文件夾。
pyenv virtualenv
將實際創建虛擬環境( conda
, virtualenv
或python -m venv
)的基礎命令轉發到基礎命令。有關詳細信息,請參見pyenv virtualenv --help
的輸出。
如果僅給pyenv virtualenv
提供一個參數,則將根據當前的Pyenv Python版本創建Virtualenv。
$ pyenv version
3.4.3 (set by /home/yyuu/.pyenv/version)
$ pyenv virtualenv venv34
pyenv virtualenvs
向您展示了現有Virtualenvs和conda
環境的列表。
$ pyenv shell venv34
$ pyenv virtualenvs
miniconda3-3.9.1 (created from /home/yyuu/.pyenv/versions/miniconda3-3.9.1)
miniconda3-3.9.1/envs/myenv (created from /home/yyuu/.pyenv/versions/miniconda3-3.9.1)
2.7.10/envs/my-virtual-env-2.7.10 (created from /home/yyuu/.pyenv/versions/2.7.10)
3.4.3/envs/venv34 (created from /home/yyuu/.pyenv/versions/3.4.3)
my-virtual-env-2.7.10 (created from /home/yyuu/.pyenv/versions/2.7.10)
* venv34 (created from /home/yyuu/.pyenv/versions/3.4.3)
每個Virtualenv有兩個條目,而較短的條目只是一個符號鏈接。
某些外部工具(例如JEDI)可能需要您activate
Virtualenv和conda
環境。
如果在您的外殼中配置了eval "$(pyenv virtualenv-init -)"
,則pyenv-virtualenv
將自動激活/停用virtualenvs在輸入/離開目錄上,其中包含一個.python-version
文件,其中包含一個有效的虛擬環境的名稱,如在pyenv virtualenvs
的輸出中顯示(例如,上面的示例中,例如, venv34
或3.4.3/envs/venv34
)。 Pyenv使用.python-version
文件來表示本地Python版本,並且可以使用pyenv local
命令創建和刪除。
您還可以手動激活和停用Pyenv Virtualenv:
pyenv activate < name >
pyenv deactivate
刪除$(pyenv root)/versions
和$(pyenv root)/versions/{version}/envs
中的目錄,將刪除Virtualenv,或者您可以運行:
pyenv uninstall my-virtual-env
您還可以使用virtualenv-delete
命令刪除現有的Virtualenvs,例如可以運行:
pyenv virtualenv-delete my-virtual-env
這將刪除稱為my-virtual-env
的Virtualenv。
有一個可用於CPYTHON 3.3的VENV模塊,更新。它提供了可執行的模塊venv
該模塊VENV是virtualenv
的後繼產品,默認情況下分發。
如果可用,則使用pyenv-virtualenv
使用python -m venv
,並且virtualenv
命令不可用。
您可以通過conda create
來管理與標準Anaconda/Miniconda安裝一樣相同的方式來管理conda
環境。要使用這些環境,您可以使用pyenv activate
和pyenv deactivate
。
$ pyenv version
miniconda3-3.9.1 (set by /home/yyuu/.pyenv/version)
$ conda env list
# conda environments:
#
myenv /home/yyuu/.pyenv/versions/miniconda3-3.9.1/envs/myenv
root * /home/yyuu/.pyenv/versions/miniconda3-3.9.1
$ pyenv activate miniconda3-3.9.1/envs/myenv
discarding /home/yyuu/.pyenv/versions/miniconda3-3.9.1/bin from PATH
prepending /home/yyuu/.pyenv/versions/miniconda3-3.9.1/envs/myenv/bin to PATH
$ python --version
Python 3.4.3 :: Continuum Analytics, Inc.
$ pyenv deactivate
discarding /home/yyuu/.pyenv/versions/miniconda3-3.9.1/envs/myenv/bin from PATH
如果有conda
可用, pyenv virtualenv
將使用它來通過conda create
創建環境。
$ pyenv version
miniconda3-3.9.1 (set by /home/yyuu/.pyenv/version)
$ pyenv virtualenv myenv2
$ conda env list
# conda environments:
#
myenv /home/yyuu/.pyenv/versions/miniconda3-3.9.1/envs/myenv
myenv /home/yyuu/.pyenv/versions/miniconda3-3.9.1/envs/myenv2
root * /home/yyuu/.pyenv/versions/miniconda3-3.9.1
您可以使用miniconda3-3.9.1/envs/myenv
之類的版本將conda
環境指定為Pyenv中的版本。
$ pyenv version
miniconda3-3.9.1 (set by /home/yyuu/.pyenv/version)
$ pyenv shell miniconda3-3.9.1/envs/myenv
$ which python
/home/yyuu/.pyenv/versions/miniconda3-3.9.1/envs/myenv/bin/python
您可以將某些環境變量設置為控制Pyenv-Virtualenv。
PYENV_VIRTUALENV_CACHE_PATH
,如果設置,則指定用於緩存下載的軟件包文件的目錄。VIRTUALENV_VERSION
(如果設置)迫使Pyenv-Virtualenv安裝所需的Virtualenv版本。如果尚未安裝virtualenv
,Pyenv-Virtualenv將嘗試安裝給定版本的Virtualenv。GET_PIP
,如果設置和venv
比virtualenv
首選,請從指定的位置使用get_pip.py
。GET_PIP_URL
,如果設置和venv
優於virtualenv
,請從指定的URL下載get_pip.py
。PIP_VERSION
,如果設置和venv
優於virtualenv
,請安裝PIP的指定版本。PYENV_VIRTUALENV_VERBOSE_ACTIVATE
(如果設置)顯示激活和停用的一些詳細輸出PYENV_VIRTUALENV_PROMPT
(如果設置)允許用戶自定義pyenv-virtualenv
如何修改其殼提示。默認提示(“(VENV)”)被任何用戶指定的文本覆蓋。用字符串{venv}
指定虛擬環境名稱的位置。例如,默認提示字符串將為({venv})
。 請參閱ChangElog.md。
(麻省理工學院許可證)
特此免費授予任何獲得此軟件副本和相關文檔文件副本(“軟件”)的人,以無限制處理該軟件,包括無限制,使用,複製,修改,合併的權利,發布,分發,分佈和/或出售該軟件的副本,並允許提供該軟件的人,但要遵守以下條件:
上述版權通知和此許可通知應包含在軟件的所有副本或大量部分中。
該軟件是“原樣”提供的,沒有任何形式的明示或暗示保證,包括但不限於適銷性,特定目的的適用性和非侵權的保證。 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE軟體.