一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 詳解如何管理多個Python版本和虛擬環境

詳解如何管理多個Python版本和虛擬環境

2021-06-25 00:07愿碼社區技術團隊 Python

這篇文章主要介紹了詳解如何管理多個Python版本和虛擬環境,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

多個python版本:在同一臺機器上安裝不同的python,例如2.7和3.4。

虛擬環境:獨立的環境,既可以同時安裝特定版本的python,也可以安裝任何特定于項目的軟件包,而不會影響任何其他項目。

在這里,我們將介紹使用這些工具的三種不同工具,以及何時需要每種工具。讓我們探討以下用例:

  • venv / pyvenv
  • pyenv
  • pyenv-virtualenv

如果您使用單個版本的python如3.3+版本,并且想要管理不同的虛擬環境,那么venv就是您所需要的。

如果你想使用多個3.3+版本的python,不管是否有虛擬環境,那么請使用pyenv。

如果您還想使用python 2,那么這pyenv-virtualenv是一個不錯的選擇。

venv

python 3.3+版本中包含venv包。它是創建輕量級虛擬環境的理想選擇。

直到python 3.6,一個被調用的腳本pyvenv也作為包裝器被包含在內venv,但是這已被棄用。它將在python 3.8中被完全刪除。當使用venv時,可以使用完全相同的功能,并且應更新所有現有的文檔。

venv用于通過終端命令創建一個新的環境:

?
1
$ python3 -m venv directory-name-to-create

激活:

?
1
$ source name-given/bin/activate

通過以下方式停用:

?
1
$ deactivate

如果您在停用環境后需要完全刪除環境,則可以運行:

?
1
$ rm -r name-given

默認情況下,它創建的環境是您當前正在使用的python版本。如果您正在編寫文檔,并希望讀者使用正確版本的python,則可以在命令中指定主要版本號和次要版本號,如下所示:

?
1
$ python3.6 -m venv example-three-six

如果閱讀器使用3.6以外的版本,則該命令將不會成功,并將在其錯誤消息中指示。但是,任何補丁版本(例如3.6.4)都可以使用。

當環境處于活動狀態時,任何包都可以通過pip正常安裝到它。默認情況下,新創建的環境不包含計算機上已安裝的任何軟件包。因為pip它本身不一定會安裝在機器上。建議先使用,升級pip到最新版本pip install --upgrade pip。

項目通常會有一個requirements.txt指定其依賴項的文件。這允許使用shortcut命令pip install -r requirements.txt命令將所有包快速安裝到新創建的虛擬環境中。它們只存在于虛擬環境中。它在停用時將不可用,但在重新激活時將保持不變。

如果您不需要使用python本身的其他版本,那么您只需要創建隔離的、特定于項目的虛擬環境。

pyenv

如果您希望在一臺計算機上使用多個版本的python,那么pyenv是在版本之間安裝和切換的常用工具。這不能與前面提到的貶值的pyenv腳本混淆。它不是與python綁定的,必須單獨安裝。

pyenv文檔對它的工作原理進行了很好的描述,因此我們將在這里簡單介紹如何使用它。首先,我們需要安裝它。如果使用mac os x,可以使用homebrew執行此操作,或者考慮其他安裝選項。

?
1
2
$ brew update
$ brew install pyenv

接下來,在shell腳本的底部添加以下內容,以允許pyenv自動更改版本:

?
1
eval "$(pyenv init -)"

打開您在使用外殼腳本,通過$ ~/.zshrc,$ ~/.bashrc或$ ~/.bash_profile復制并粘貼在上面的行。

運行pyenv版本將顯示當前安裝了哪些python版本,在當前使用的版本旁邊有一個*。pyenv version直接顯示了這一點,python——version可以用來驗證這一點。

要安裝一個附加版本,比如3.4.0,只需使用pyenv install 3.4.0。

pyenv從四個方面來決定使用哪個版本的python,優先順序如下:

  1. pyenv_version環境變量(如果指定)。您可以使用該pyenv shell命令在當前shell會話中設置此環境變量。
  2. 當前目錄中的特定于應用程序的.python版本文件(如果存在)。您可以使用pyenv local命令修改當前目錄的.python版本文件。
  3. 通過搜索每個父目錄找到(如果有的話)第一個.python版本的文件,直到找到文件系統的根目錄。
  4. 全局版本文件。您可以使用pyenv全局命令修改這個文件。如果不存在全局版本文件,pyenv假設您希望使用“system”python。(換句話說,如果pyenv不在您的路徑中,則運行哪個版本。)

當設置一個使用python 3.6.4的新項目時,pyenv local 3.6.4將運行在它的根目錄中。這將設置版本,并創建一個.python-version文件,以便其他貢獻者的機器能夠接收它。

pyenv命令的完整描述可以添加書簽。

pyenv和venv

使用python 3.3+時,我們現在知道如何在不同版本的python之間安裝和切換,以及如何創建新的虛擬環境。

舉個例子,假設我們正在建立一個使用python 3.4的項目。

首先,我們可以使用設置本地版本pyenv local 3.4.0。

如果我們然后運行python3 -m venv example-project新的虛擬環境將example-project使用我們在本地啟用的python 3.4.0進行設置。

我們激活使用source example-project/bin/activate并可以開始工作。

接下來,我們可以選擇記錄協作者應該使用的內容python3.4 -m venv <name>。這意味著即使協作者沒有使用pyenv該python3.4命令,如果他們的python版本不是我們想要的主要和次要版本(3和4),也會出錯。

如果我們認為任何大于3.4的版本都是可以接受的,那么我們也可以選擇使用python3而不是python3.4,就像合作者使用3.6一樣,否則他們也會收到一個錯誤。這是一個特定于項目的決策。

pyenv-virtualenv

pyenv可用于安裝python 2和3版本。但是,正如我們所看到的,venv僅限于大于3.3的python版本。

pyenv-virtualenv是一個創建與pyenv集成的虛擬環境的工具,適用于所有python版本。如果可能,仍然建議使用官方的python venv。但是,例如,如果您正在創建一個基于2.7.13的虛擬環境,那么這是對pyenv的贊美。

如果您已經使用它,它也適用于anaconda和miniconda conda環境。virtualenv還存在一個名為的工具。這里沒有涉及,但它最后是聯系在一起的。

安裝pyenv,接下來可以使用homebrew(或替代品)進行安裝,如下所示:

?
1
$ brew install pyenv-virtualenv

接下來在你的 .zshrc,, .bashrc或 .bash_profile(取決于你使用的shell)在底部添加以下內容:

?
1
2
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

這允許pyenv在移動目錄時自動激活和停用環境。

要創建新的虛擬環境,請使用:

?
1
2
3
$ pyenv virtualenv <version> <name-to-give-it>
// for example
$ pyenv virtualenv 2.7.10 my-virtual-env-2.7.10

可以列出現有環境:

?
1
$ pyenv virtualenvs

激活/停用:

?
1
2
$ pyenv activate <name>
$ pyenv deactivate

在撰寫本文時activate,prompt changing will be removed from future release將顯示使用警告。這是預期的,僅指(env-name)在shell中顯示的內容,而不是activate命令本身的使用。

安裝要求的工作原理如下所述venv。不像在venv一個rm -r命令不需要刪除一個環境,一個uninstall命令存在。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://segmentfault.com/a/1190000019127677

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产亚洲一欧美一区二区三区 | 成年人在线视频观看 | 脱女学小内内摸出水网站免费 | 日本在线小视频 | 我和子伦系列小说 | 国产在线综合网 | 国产一精品一av一免费爽爽 | 好爽好舒服视频 | 免费观看韩剧网站在线观看 | 青青青在线观看国产精品 | 色综合网天天综合色中文男男 | 精品在线免费观看 | 日本不卡免费新一二三区 | 久久草福利自拍视频在线观看 | 亚洲精品成人a | 色婷婷天天综合在线 | 天天看黄 | 久久国产热视频99rev6 | 99热久久这里只精品国产www | 香蕉在线播放 | 日本漫画被黄漫免费动 | 日韩免费 | 91资源站| 999精品视频在线观看热6 | 亚洲经典激情春色另类 | 欧美精品国产一区二区 | 九九九好热在线 | 草莓绿巨人香蕉茄子芭乐 | 春宵福利网站在线观看 | 国产精品亚洲精品青青青 | 久久受www免费人成_看片中文 | 亚洲精品中文字幕第一区 | 免费看国产精品久久久久 | 久久综合视频网站 | 好逼365 | 青青草国产精品免费 | 女主被男主做哭失禁高h | 日本精品久久久久中文字幕 1 | 成年人免费观看的视频 | 国产精品免费久久久久影院小说 | 脱jk裙的美女露小内内无遮挡 |