首頁 > 軟體

一文讀懂Python版本管理工具Pyenv使用

2021-06-07 16:03:41

pyenv簡單介紹

在日常運維中, 經常遇到這樣的情況: 系統自帶的Python是2.x,而業務部署需要Python 3.x 環境, 此時需要在系統中安裝多個Python版本,但又不能影響系統自帶的Python 版本,即需要實現Python的多版本環境共存, pyenv就是這樣一個Python版本管理器, 可以同時管理多個python版本共存! 簡單的說,pyenv 可以根據需求使使用者在系統裡安裝和管理多個Python 版本:

- 設定當前使用者的python的版本;
- 設定當前shell的python版本;
- 設定某個專案(目錄及子目錄)的python版本;
- 設定多個虛擬環境.

由於python的各種優點,當前學習及使用python的人越來越多, 學習python有一個不容忽視的問題就是python的版本問題! 到現在為止,python的版本有很多,但是問題在於python2與python3的區別。python3的對一些模組進行了改變,導致了python2寫的程式碼有的不被python3相容,從而導致程式執行報錯。因此,在學習和工作中使用python的時候,最好是安裝一個pyenv管理器, 多安裝幾個python版本進行管理, 然後再針對不同專案安裝各自專案的python虛擬環境, 相互隔離, 這樣便於使用和管理。

pyenv工作原理

pyenv是利用系統環境變數PATH的優先順序,劫持python的命令到pyenv上,根據使用者所在的環境或目錄,使用不同版本的python。

下面看看Python版本管理工具Pyenv使用

  • pyenv:管理 Python 本身的多個版本;
  • pyenv-virtualenv:管理不同版本 Python 的虛擬環境;

linux安裝

1. 首先安裝所需依賴,在Ubuntu/Debian/Mint(Debian系)上:

sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev 
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm 
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

2. 接著執行

$ curl https://pyenv.run | bash

3. 重啟shell

exec $SHELL

4. 檢視~/.bashrc檔案,如果檔案最末尾處沒有以下三行程式碼,則在末尾處追加以下內容。如果有,忽略步驟4。

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

接著執行: source ~/.bashrc
最後重啟shell以生效: exec "$SHELL"

win10安裝

1. 點選以下地址,下載所需檔案:https://github.com/pyenv-win/pyenv-win/archive/master.zip

2. 在home目錄下建立 .pyenv 資料夾,解壓剛才下載的檔案,將其中的pyenv-win資料夾整個移動至 home/.pyenv 資料夾下

3. 接著開啟powershell或者windows terminal,逐行輸入並回車以下命令

[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + ".pyenvpyenv-win","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + ".pyenvpyenv-win","User")
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + ".pyenvpyenv-winbin;" + $env:USERPROFILE + ".pyenvpyenv-winshims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")

使用

pyenv常用命令

# 檢視pyenv當前支援哪些python版本
pyenv install --list
 
# 安裝指定的python版本
pyenv install xxx
 
# 列出本地pyenv中所有可用的python版本
pyenv versions
 
# 解除安裝某個版本
pyenv uninstall 3.9.1
 
# 為所有已安裝的可執行檔案建立shims,因此,每當你增刪了Python版本或帶有可執行檔案的包(如pip以後,都應該執行一次本命令)
pyenv rehash

使用pyenv安裝指定的python版本

線上安裝

離線安裝

1. 首先下載離線的包,如3.7.5的網址為: https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz

2. 接著在home的.pyenv目錄下建一個cache的資料夾,將下載下來的包移動至這個資料夾

在命令列中cd進這個目錄,然後執行pyenv install 3.7.5即可

切換python版本

  1. pyenv global xxx  - 全域性環境,在未再次使用 global切換環境之前,一直使用此環境
  2. pyenv local xxx -  本次登入環境。重啟後,則環境失效,並返回當前global的環境
  3. pyenv shell xxx -  區域性(臨時)環境。關閉命令列視窗,則環境失效,並返回當前global的環境

python版本的優先順序順序:shell > local> global
注:pyenv會從當前目錄開始向上逐級查詢.python-versiob檔案,直到根目錄為止,若找不到,則使用global版本。

pyenv which python  # 檢視當前的python版本具體的位置

完全刪除pyenv

rm -fr ~/.pyenv

並且清理掉~/.bashrc檔案中寫入末尾的三行
接著執行: source ~/.bashrc
最後重啟shell以生效: exec "$SHELL"

以上就是一文讀懂Python版本管理工具Pyenv使用的詳細內容,更多關於Python版本管理Pyenv使用的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com