1涡真、pyenv-virtualenv簡介
pyenv-virtualenv是一個管理python虛擬環(huán)境的插件。pyenv 解決的是同一個系統(tǒng)中不同版本的 python 并存的問題投队,而 pyenv-virtualenv 解決的是不同項目所依賴的軟件包之間可能產生沖突的問題。在實際使用 python 的過程中爵川,很容易出現(xiàn)這樣的問題:
通過
pip
安裝軟件包 A 時安裝了 A 所依賴的軟件包 B敷鸦;之后又通過pip
安裝軟件包 C 時再次安裝了 B 并將之前的覆蓋,但是因為 C 和 A 所依賴的 B 版本不同,安裝完 C 后導致 A 無法運行扒披。
pyenv-virtualenv 通過為每個項目設置獨立的虛擬環(huán)境(目錄)來解決上述問題值依。由于 pyenv-virtualenv 是 pyenv 的一個插件,因此需要首先安裝 pyenv 碟案,然后通過 git 或者 brew 安裝 pyenv-virtualenv鳞滨。
使用 pyenv-virtualenv 創(chuàng)建虛擬環(huán)境,命令格式為
pyenv virtualenv [version] <venv-name>
$ pyenv virtualenv 3.6.1 my-virtual-env-3.6.1
上述命令將創(chuàng)建一個名為my-virtual-env-3.6.1的虛擬環(huán)境(目錄)蟆淀,并且將 python 3.6.1 對應的bin和lib復制到該環(huán)境中拯啦。當該虛擬環(huán)境被激活后,所有的 python 操作都只在該環(huán)境中進行熔任,從而和其它 python 內容隔離褒链。
pyenv-virtualenv 支持自動激活和退出虛擬環(huán)境。首先確保在 shell 配置文件中添加了
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
我使用的是zsh疑苔,所以在家目錄(~)下的.zshrc中添加了上述兩行命令甫匹。
接著在需要使用虛擬環(huán)境的目錄(通常是項目目錄)中:建立一個.python-version的文本文件,將虛擬環(huán)境名稱(如my-virtual-env-3.6.1)寫在里面即可惦费。之后每次進/出該目錄時兵迅,虛擬環(huán)境都將自動激活/退出。
也可以用命令手動激活和退出:
$ pyenv activate my-virtual-env-3.6.1
$ pyenv deactivate
查看所有虛擬環(huán)境薪贫、刪除虛擬環(huán)境等更多命令和其他使用細節(jié)恍箭,請參考官方文檔。