使用pyevn管理多個(gè)Python版本

日常開發(fā)遇到的實(shí)際問題

因?yàn)镻ython版本一直更新,每個(gè)項(xiàng)目使用的Python版本不一樣,有的項(xiàng)目使用Python3.6,有的使用Python3.7,有的使用Python2。
如果在官網(wǎng)下載指定的安裝包進(jìn)行安裝,你會發(fā)現(xiàn)新安裝的版本總會覆蓋掉之前的版本,但是舊版本又有其他的項(xiàng)目在使用,并不想被刪除。
這時(shí)就希望有一個(gè)工具可以方便地管理多個(gè)Python版本,最好還能多個(gè)版本之間相互切換。
pyenv正好滿足這個(gè)需求。

簡介

Simple Python version management:pyenv (點(diǎn)擊進(jìn)入GitHub主頁)

pyenv lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.

安裝

  • 安裝方式1. 僅限Mac
    $ brew install pyenv
  • 安裝方式2. 自動安裝腳本
    pyenv-installer

使用

  1. 查看所有可用的版本
    $ pyenv install -l
  2. 安裝指定版本
  • $ pyenv install 3.6.5
    默認(rèn)會從python.org下載指定版本,速度卻非常慢(除非你在墻外)。
  • 安裝指定的python離線安裝包
    這里,我們需要知道一點(diǎn):pyenv不僅可以在線下載安裝python版本,還可以從它的緩存目錄~.pyenv/cache安裝離線安裝包。其實(shí)執(zhí)行$ pyenv install 3.6.5,也是先檢查緩存目錄~.pyenv/cache下是否存在指定安裝包,如果沒有就會從網(wǎng)絡(luò)下載。
    所以,我們可以在本地終端下載好指定版本安裝包,比如:
    $ wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
    然后將其移動到.pyenv/cache 文件夾下,最后再次執(zhí)行$ pyenv install 3.6.5,便可順利安裝。
  1. 創(chuàng)建虛擬環(huán)境
    例如:創(chuàng)建一個(gè)3.6.5版本的虛擬環(huán)境:$ pyenv virtualenv 3.6.5 env_***
  2. 查看所有的Python環(huán)境
    $ pyenv versions
  3. 激活指定的虛擬環(huán)境
    $ pyenv activate env_***
  4. 退出當(dāng)前虛擬環(huán)境
    $ pyenv deactivate
    當(dāng)然你也可以直接關(guān)掉終端。
  5. 刪除虛擬環(huán)境
    $ pyenv uninstall env_***

MacOS安裝過程錯(cuò)誤排查

MacOS在安裝過程中可能會出現(xiàn)下面的問題:

...
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1

這個(gè)問題在github上已被指出:Issue #454
解決方法就是需要從命令行更新Xcode,終端運(yùn)行指令xcode-select --install

WTF!可能又會提示:...the tools are already installed.
一頓搜索,找到解決方法:# How to update Xcode from command line
方法就是終端運(yùn)行指令softwareupdate --install -a
運(yùn)行完成后,軟件更新會彈出可用更新的提示,點(diǎn)擊現(xiàn)在更新
更新完成后,再次嘗試安裝,還是失敗,提示同樣的錯(cuò)誤!??!

又是一頓搜索。。。
最后還是萬能的Stack Overflow,找到了解決方法:# pyenv zlib error on MacOS:
只需要終端運(yùn)行指令:
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
然后再次執(zhí)行安裝pyenv install 3.6.5就可以安裝成功啦。

zhanglilongs-MacBook-Pro:~ zhanglilong$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Password:
installer: Package name is macOS_SDK_headers_for_macOS_10.14
installer: Installing at base path /
installer: The install was successful.
zhanglilongs-MacBook-Pro:~ zhanglilong$ pyenv install 3.6.5
python-build: use openssl from homebrew
python-build: use readline from homebrew
Installing Python-3.6.5...
python-build: use readline from homebrew
Installed Python-3.6.5 to /Users/zhanglilong/.pyenv/versions/3.6.5

zhanglilongs-MacBook-Pro:~ zhanglilong$ pyenv versions
* system (set by /Users/zhanglilong/.pyenv/version)
  3.6.5

參考文章:使用 pyenv 管理 Python 版本

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容