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軟體.