自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

管理眾多Python版本的神器:Pyenv

譯文
開發(fā) 前端
你在尋找一種輕松管理多個Python版本的方法嗎?那么,Pyenv適合您。

譯者 | 布加迪

審校 | 重樓

想要在不破壞開發(fā)環(huán)境的情況下,在上午嘗試最新Python版本的新特性,在午休時間瀏覽遺留的Python代碼庫嗎?Pyenv可以這個忙。使用Pyenv,您可以安裝Python版本,在不同版本之間切換,并刪除不再需要的版本。

本教程介紹了Pyenv的安裝和使用

安裝Pyenv

第一步是安裝Pyenv。我用的是LinuxUbuntu 23.01。如果您使用Linux系統(tǒng),安裝Pyenv的最簡單方法是運行以下curl命令

$ curl https://pyenv.run | bash

這將使用pyenv-installer安裝Pyenv。

安裝完成后,系統(tǒng)提示您完成shell環(huán)境的設(shè)置以使用Pyenv。為此,可以將以下命令添加到~/.bashrc文件

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc

echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc

echo 'eval "$(pyenv init -)"' >> ~/.bashrc

已準(zhǔn)備好開始使用Pyenv!

注意如果使用MacWindows系統(tǒng),查看有關(guān)如何安裝Pyenv的詳細(xì)說明https://github.com/pyenv/pyenv#installation。在Windows上,您需要在Windows Subsystem for LinuxWSL)中安裝Pyenv

使用Pyenv安裝Python版本

已經(jīng)安裝了Pyenv,可以通過運行pyenv install命令來安裝特定的Python版本,像這樣

$ pyenv install version

執(zhí)行以下命令,查看已安裝的Python版本列表

$ pyenv versions
* system (set by /home/balapriya/.pyenv/version)

還沒有安裝任何新版本,所以Python的唯一版本是系統(tǒng)版本,這里是Python 3.11

$ python3 -version
Python 3.11.4

不妨嘗試安裝Python 3.8和3.12。試著運行這個命令來安裝Python 3.8

$ pyenv install 3.8

第一次嘗試使用Pyenv安裝特定版本的Python時,可能會遇到錯誤,這是由于缺少一些構(gòu)建依賴項。不用擔(dān)心這很容易解決!

一些故障排除提示

嘗試使用pyenv install命令在我的Linux發(fā)行版上安裝Pyenv時,由于缺少構(gòu)建依賴項,我遇到了錯誤。

這個StackOverflow帖子包含有關(guān)為Pyenv安裝所需構(gòu)建依賴項的有用信息。運行以下命令以安裝丟失的依賴項:

$ apt-get install build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev

現(xiàn)在,您應(yīng)該能夠安裝Python版本,不會出現(xiàn)任何錯誤

$ pyenv install 3.8

注意:當(dāng)您安裝Python 3時默認(rèn)安裝最新的版本。但是以指定3.x,用于安裝特定的Python版本。還可以運行pyenv install --list來列出所有可以安裝的Python版本,不過版本很多

同樣,運行pyenv install安裝Python 3.12

$ pyenv install 3.12

現(xiàn)在如果運行pyenv versions,除了系統(tǒng)版本外,還會看到Python 3.8和3.12

$ pyenv versions
* system (set by /home/balapriya/.pyenv/version)
3.8.18
3.12.0

設(shè)置Python全局版本

使用Pyenv,您可以設(shè)置全局Python版本。顧名思義,全局版本是您在命令行使用Python時所使用的Python版本。

但請注意將其設(shè)置為比較新的版本,以免在運行使用較新Python版本的項目時出現(xiàn)錯誤。

比如說,不妨看看如果將全局版本設(shè)置為Python 3.8.18會發(fā)生什么。

$ pyenv global 3.8.18

創(chuàng)建一個項目文件夾。在其中,用以下代碼創(chuàng)建一個main.py文件

# main.py

def handle_status_code(status_code):
 match status_code:
 case 200:
 print(f"Success! Status code: {status_code}")
 case 404:
 print(f"Not Found! Status code: {status_code}")
 case 500:
 print(f"Server Error! Status code: {status_code}")
 case _:
 print(f"Unhandled status code: {status_code}")

status_code = 404 # oversimplification, yes. handle_status_code(status_code)

所見,這段代碼使用了Python 3.10中引入的match-case語句。因此,需要Python 3.10或更高版本才能成功運行此代碼。如果試著運行腳本,會得到以下錯誤

File "main.py", line 2
 match status_code:
  ^
SyntaxError: invalid syntax

在本文例子中,系統(tǒng)Python是3.11版本,比較新。所以我可以將全局版本設(shè)置為系統(tǒng)Python版本,如下所示

$ pyenv global system

當(dāng)現(xiàn)在運行同一個腳本時,應(yīng)該得到以下輸出

Output >>>
Not Found! Status code: 404

如果您的系統(tǒng)Python是舊版本,比如Python 3.6或更早版本,安裝新版的Python并將其設(shè)置為全局版本將大有幫助。

為項目設(shè)置本地Python版本

當(dāng)您想要處理使用早期Python版本的項目時,希望安裝該版本以避免任何錯誤(比如不再支持的方法調(diào)用。

假設(shè)您在處理項目A時使用Python 3.8,處理項目B時使用Python 3.10或更高版本,在這種情況下,可以在項目A的目錄中設(shè)置本地Python版本,如下所示:

$ pyenv local 3.8.18

可以運行python --version來檢查項目目錄Python版本

$ python --version
Python 3.8.18

這在處理較舊的Python代碼庫時特別有用。

卸載Python版本

如果不再需要Python版本,可以通過運行pyenv uninstall命令卸載它。假設(shè)不再需要Python 3.8.18,那么可以通過運行以下命令來卸載它

$ pyenv uninstall 3.8.18

您應(yīng)該在終端看到類似的輸出

pyenv: remove /home/balapriya/.pyenv/versions/3.8.18? [y|N] y
pyenv: 3.8.18 uninstalled

結(jié)語

但愿這篇關(guān)于Pyenv的入門教程對有所幫助。總結(jié)幾個最常見的命令以便快速查詢:

命令

功能

pyenv versions

列出目前已安裝的所有Python版本

pyenv install list

列出可以安裝的所有Python版本

pyenv install 3.x

安裝Python 3.x的最新版

pyenv install 3.x.y

安裝Python 3.x的版本y

pyenv global 3.x

將Python 3.x設(shè)為全局Python版本

pyenv local 3.x

將您項目的本地Python版本設(shè)為3.x

pyenv uninstall 3.x.y

卸載Python 3.x的版本

Docker是一個很好的選擇,可以讓本地開發(fā)變得輕松,不用擔(dān)心依賴沖突,但是每當(dāng)需要處理新項目使用Docker或其他容器化解決方案可能大材小用。

因此,我認(rèn)為能夠在命令行中安裝、管理和切換Python版本仍然有幫助。您還可以了解pyenv-virtualenv插件以創(chuàng)建和管理虛擬環(huán)境。

原文標(biāo)題:Too Many Python Versions to Manage? Pyenv to the Rescue,作者:Bala Priya C

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2020-05-25 17:40:00

MacpyenvPython

2013-09-12 15:36:31

2022-05-18 08:05:20

pyenvPython解釋器

2022-06-06 14:54:44

PythonNuitka

2015-11-18 16:36:12

數(shù)據(jù)中心/華三

2021-01-26 05:30:44

python程序員代碼

2021-01-24 22:46:07

Python開發(fā)程序員

2015-03-18 10:59:23

AzureAzure管理工具云計算平臺

2022-02-11 07:45:10

Linuxsmem系統(tǒng)

2022-08-24 13:25:20

微軟Python小白神器

2012-11-08 10:22:32

BUG軟件測試

2010-06-03 18:07:21

2017-05-27 20:00:30

Python爬蟲神器PyQuery

2024-04-18 09:51:36

Python數(shù)據(jù)開發(fā)

2024-01-29 01:15:11

HelmKubernetesKustomize

2021-04-25 08:58:00

Go拍照云盤

2009-10-23 09:29:43

linux優(yōu)勢特點

2019-01-24 13:37:14

JavaScript開發(fā) 小程序

2024-07-15 15:05:20

Python數(shù)據(jù)驅(qū)動

2022-06-23 09:17:07

PythonGUIPyAutoGUI
點贊
收藏

51CTO技術(shù)棧公眾號