一文讀懂Python版本管理工具Pyenv使用
pyenv簡單介紹
在日常運維中, 經(jīng)常遇到這樣的情況: 系統(tǒng)自帶的Python是2.x,而業(yè)務(wù)部署需要Python 3.x 環(huán)境, 此時需要在系統(tǒng)中安裝多個Python版本,但又不能影響系統(tǒng)自帶的Python 版本,即需要實現(xiàn)Python的多版本環(huán)境共存, pyenv就是這樣一個Python版本管理器, 可以同時管理多個python版本共存! 簡單的說,pyenv 可以根據(jù)需求使用戶在系統(tǒng)里安裝和管理多個Python 版本:
- 配置當前用戶的python的版本;
- 配置當前shell的python版本;
- 配置某個項目(目錄及子目錄)的python版本;
- 配置多個虛擬環(huán)境.
由于python的各種優(yōu)點,當前學(xué)習(xí)及使用python的人越來越多, 學(xué)習(xí)python有一個不容忽視的問題就是python的版本問題! 到現(xiàn)在為止,python的版本有很多,但是問題在于python2與python3的區(qū)別。python3的對一些模塊進行了改變,導(dǎo)致了python2寫的代碼有的不被python3兼容,從而導(dǎo)致程序運行報錯。因此,在學(xué)習(xí)和工作中使用python的時候,最好是安裝一個pyenv管理器, 多安裝幾個python版本進行管理, 然后再針對不同項目安裝各自項目的python虛擬環(huán)境, 相互隔離, 這樣便于使用和管理。
pyenv工作原理
pyenv是利用系統(tǒng)環(huán)境變量PATH的優(yōu)先級,劫持python的命令到pyenv上,根據(jù)用戶所在的環(huán)境或目錄,使用不同版本的python。
下面看看Python版本管理工具Pyenv使用
- pyenv:管理 Python 本身的多個版本;
- pyenv-virtualenv:管理不同版本 Python 的虛擬環(huán)境;
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. 接著執(zhí)行
$ curl https://pyenv.run | bash
3. 重啟shell
exec $SHELL
4. 查看~/.bashrc文件,如果文件最末尾處沒有以下三行代碼,則在末尾處追加以下內(nèi)容。如果有,忽略步驟4。
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)"
接著執(zhí)行: source ~/.bashrc
最后重啟shell以生效: exec "$SHELL"
win10安裝
1. 點擊以下地址,下載所需文件:https://github.com/pyenv-win/pyenv-win/archive/master.zip
2. 在home目錄下創(chuàng)建 .pyenv 文件夾,解壓剛才下載的文件,將其中的pyenv-win文件夾整個移動至 home/.pyenv 文件夾下
3. 接著打開powershell或者windows terminal,逐行輸入并回車以下命令
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [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 # 為所有已安裝的可執(zhí)行文件創(chuàng)建shims,因此,每當你增刪了Python版本或帶有可執(zhí)行文件的包(如pip以后,都應(yīng)該執(zhí)行一次本命令) pyenv rehash
使用pyenv安裝指定的python版本
在線安裝
離線安裝
1. 首先下載離線的包,如3.7.5的網(wǎng)址為: https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz
2. 接著在home的.pyenv目錄下建一個cache的文件夾,將下載下來的包移動至這個文件夾
在命令行中cd進這個目錄,然后執(zhí)行pyenv install 3.7.5即可
切換python版本
- pyenv global xxx - 全局環(huán)境,在未再次使用 global切換環(huán)境之前,一直使用此環(huán)境
- pyenv local xxx - 本次登錄環(huán)境。重啟后,則環(huán)境失效,并返回當前global的環(huán)境
- pyenv shell xxx - 局部(臨時)環(huán)境。關(guān)閉命令行窗口,則環(huán)境失效,并返回當前global的環(huán)境
python版本的優(yōu)先級順序:shell > local> global
注:pyenv會從當前目錄開始向上逐級查找.python-versiob文件,直到根目錄為止,若找不到,則使用global版本。
pyenv which python # 查看當前的python版本具體的位置
完全刪除pyenv
rm -fr ~/.pyenv
并且清理掉~/.bashrc文件中寫入末尾的三行
接著執(zhí)行: source ~/.bashrc
最后重啟shell以生效: exec "$SHELL"
以上就是一文讀懂Python版本管理工具Pyenv使用的詳細內(nèi)容,更多關(guān)于Python版本管理Pyenv使用的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python執(zhí)行js腳本報錯CryptoJS is not defined問題
這篇文章主要介紹了python執(zhí)行js腳本報錯CryptoJS is not defined問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05python腳本當作Linux中的服務(wù)啟動實現(xiàn)方法
今天小編就為大家分享一篇python腳本當作Linux中的服務(wù)啟動實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python 格式化輸出_String Formatting_控制小數(shù)點位數(shù)的實例詳解
在本篇文章里小編給大家整理了關(guān)于Python 格式化輸出_String Formatting_控制小數(shù)點位數(shù)的實例內(nèi)容,需要的朋友們參考下。2020-02-02Python run()函數(shù)和start()函數(shù)的比較和差別介紹
這篇文章主要介紹了Python run()函數(shù)和start()函數(shù)的比較和差別介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05