Computer Vision學習】二、使用pyenv管理多個Python版本(基于Ubuntu16.04)

      網友投稿 1112 2025-04-02

      常用命令快速查閱


      前言

      你是否曾經想過為支持多個Python版本的項目做出貢獻,但是不確定如何輕松測試所有版本?你是否對Python的最新和最佳版本感到好奇?也許你想嘗試這些新功能,但不想擔心會弄亂你的開發(fā)環(huán)境。幸運的是,如果你使用pyenv,則不必管理多個版本的Python。

      本文將為你提供有關如何最大程度地花在項目上的時間以及如何最大程度地減少嘗試使用正確版本的Python的時間的概述。

      在本文中,你將學習如何:

      1、安裝多個版本的Python

      2、安裝最新的Python開發(fā)版本

      3、在安裝的版本之間切換

      4、在pyenv中使用虛擬環(huán)境

      5、自動激活不同的Python版本和虛擬環(huán)境

      1、為什么要使用pyenv?

      “System Python” 是操作系統(tǒng)上安裝的Python。如果你使用的是Mac或Linux,則默認情況下,當你在終端中鍵入python時,會得到一個不錯的Python REPL(交互式窗口)。

      那么,為什么不使用它呢?一種看待它的方式是該Python確實屬于操作系統(tǒng)。畢竟,它是隨操作系統(tǒng)一起安裝的。當你執(zhí)行以下操作時,這甚至可以反映出來:

      $ which python /usr/bin/python

      1

      2

      在這里,python可供所有用戶使用,其位置/usr/bin/python證明了這一點。問題是,這不是你想要的Python版本:

      $ python -V Pyhton 2.7.12

      1

      2

      要將軟件包安裝到系統(tǒng)Python中,必須運行sudo pip install。需要注意的是,這樣是在全局范圍內安裝Python軟件包,如果另一個用戶出現并想安裝該軟件包的稍舊版本,這將是一個真正的問題。

      同一軟件包的多個版本的問題往往會困擾到你,并在你最不期望的時候纏住你。經過數小時的故障排除和谷歌搜索,你可能會發(fā)現安裝了錯誤版本的依賴項,這毀了你的一天。

      即使你的Python版本安裝在/usr/local/bin/python3中,你仍然不安全。你將遇到上述相同的權限和靈活性問題。

      另外,你實際上對操作系統(tǒng)上安裝的Python版本沒有太多控制權。例如,如果你想使用Python中的最新功能,而你正在使用Ubuntu,那么你可能就不走運了。默認版本可能太舊,這意味著你只需要等待新的操作系統(tǒng)問世即可。

      最后,某些操作系統(tǒng)實際上使用打包的Python進行操作。以yum為例,它大量使用Python來完成其工作。如果你安裝了新版本的Python,并且不小心將其安裝到用戶空間中,則可能會嚴重損害你使用操作系統(tǒng)的能力。

      1.1、包管理器呢?

      下一個合乎邏輯的地方是程序包管理器,如apt,yum,brew或port等。畢竟,這就是將大多數軟件包安裝到系統(tǒng)的方式。不幸的是,使用包管理器會發(fā)現一些相同的問題。

      默認情況下,程序包管理器傾向于將其程序包安裝到全局系統(tǒng)空間而不是用戶空間中。同樣,這些系統(tǒng)級程序包會污染你的開發(fā)環(huán)境,并使其很難與他人共享工作區(qū)。

      同樣,你仍然無法控制可以安裝哪個版本的Python。的確,有些存儲庫為您提供了更多選擇,但是默認情況下,您正在查看特定供應商在特定日期所使用的Python版本。

      即使你確實從程序包管理器安裝Python,也要考慮如果編寫程序包并希望在Python 3.4-3.7上進行支持和測試會發(fā)生什么。

      當你鍵入python3時,系統(tǒng)上會發(fā)生什么?你如何在不同版本之間快速切換?你當然可以做到,但是這很繁瑣并且容易出錯。沒關系,如果你想要PyPy,Jython或Miniconda,那么你的包管理器可能就不走運了。

      考慮到這些限制,讓我們回顧一下可以輕松靈活地安裝和管理Python版本的條件:

      1、在用戶空間中安裝Python

      2、安裝多個版本的Python

      3、指定所需的確切Python版本

      4、在安裝的版本之間切換

      pyenv可以讓你做所有這些事情,甚至更多。

      2、安裝pyenv

      在安裝pyenv本身之前,你將需要一些特定于操作系統(tǒng)的依賴項。這些依賴關系大部分是用C編寫的開發(fā)實用程序,是必需的,因為pyenv通過從源代碼構建來安裝Python。有關構建依賴項的詳細分類和解釋,請查看官方文檔。在本教程中,你將看到安裝這些依賴項的最常用方法。

      注意:pyenv最初不支持Windows。但是,最近活躍的pyenv-win項目似乎提供了一些基本支持。如果你使用Windows,請隨時進行查閱。

      2.1、構建依賴項

      pyenv從源代碼構建Python,這意味著你需要構建依賴項才能實際使用pyenv。構建依賴關系因平臺而異。如果你使用的是Ubuntu / Debian,并且要安裝構建依賴項,則可以使用以下命令:

      $ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \ libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

      1

      2

      3

      這將使用Apt安裝所有構建依賴項。運行此命令,你就可以開始使用Debian系統(tǒng)了。

      2.2、使用pyenv-installer

      安裝了構建依賴項后,即可準備安裝pyenv本身。建議使用pyenv-installer項目:

      $ curl https://pyenv.run | bash

      1

      若使用的shell是zsh,則應該使用curl https://pyenv.run | zsh命令!

      這將安裝pyenv以及一些有用的插件:

      1、pyenv:實際的pyenv應用程序

      2、pyenv-virtualenv:pyenv和虛擬環(huán)境插件

      3、pyenv-update:更新pyenv插件

      4、pyenv-doctor:用于驗證是否已安裝pyenv和構建依賴項的插件

      5、pyenv-which-ext:自動查找系統(tǒng)命令插件

      注意:上面的命令與下載pyenv-installer腳本并在本地運行它等效。因此,如果你想確切查看運行的內容,則可以自己查看文件。另外,如果你確實不想運行腳本,則可以查看手動安裝說明。

      運行結束時,你應該會看到類似以下內容:

      WARNING: seems you still have not added 'pyenv' to the load path. # Load pyenv automatically by adding # the following to ~/.bashrc: export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"

      1

      2

      3

      4

      5

      6

      7

      8

      相應地,shell是zsh時,輸出內容如下所示:

      在這里插入代碼片

      1

      你應該按照上述說明將pyenv添加到你的~/.bashrc(或~/.zshrc)路徑并初始化pyenv/pyenv-virtualenv自動完成功能。

      完成此操作后,在終端輸入如下命令使環(huán)境變量生效

      source ~/.bashrc or source ~/.zshrc

      1

      2

      3

      接著需要輸入以下命令重新加載Shell:【當然了重啟終端也是可以的!】

      $ exec "$SHELL" # Or just restart your terminal

      1

      現在,你已經完成了安裝pyenv和四個有用的插件。可以輸入以下命令查看pyenv的版本以及更新pyenv

      pyenv --version #查看pyenv版本 pyenv update #更新pyenv

      1

      2

      3、使用pyenv安裝Python

      現在你已經安裝了pyenv,下一步就是安裝Python。你有許多版本的Python可供選擇。如果要查看所有可用的CPython 3.6至3.8,可以執(zhí)行以下操作:

      $ pyenv install --list | grep " 3\.[678]" 3.6.0 3.6-dev 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7-dev 3.7.1 3.7.2 3.8-dev

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      上面顯示了pyenv知道的所有與正則表達式匹配的Python版本。在這種情況下,這是所有可用的CPython版本3.6到3.8。

      如果要查看所有軟件的所有版本,可以執(zhí)行以下操作:

      $ pyenv install --list ... # There are a lot

      1

      2

      3

      找到所需版本后,可以使用單個命令進行安裝:

      $ pyenv install -v 3.7.2 /tmp/python-build.20190208022403.30568 ~ Downloading Python-3.7.2.tar.xz... -> https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz Installing Python-3.7.2... /tmp/python-build.20190208022403.30568/Python-3.7.2 /tmp/python-build.20190208022403.30568 ~ [...] Installing collected packages: setuptools, pip Successfully installed pip-18.1 setuptools-40.6.2 Installed Python-3.7.2 to /home/realpython/.pyenv/versions/3.7.2

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      pyenv文檔具有出色的安裝說明以及有用的常見問題以及常見的構建問題。

      這將需要一段時間,因為pyenv是從源代碼構建Python,但是一旦完成,你將在本地計算機上使用Python 3.7.2。如果你不想查看所有輸出,只需刪除-v標志。甚至可以安裝CPython的開發(fā)版本:

      $ pyenv install 3.8-dev

      1

      提示:如果你使用pyenv已有一段時間,但沒有找到所需的版本,則可能需要運行pyenv update來更新該工具,并確保可以訪問最新版本。

      在本教程的其余部分中,示例假定你已經安裝了3.6.8和2.7.15,但是你可以隨意將這些值替換為實際安裝的Python版本。還要注意,示例中的系統(tǒng)Python版本是2.7.12。

      【Computer Vision學習】二、使用pyenv管理多個Python版本(基于Ubuntu16.04)

      3.1、安裝位置

      如前所述,pyenv通過從源代碼構建Python來工作。你安裝的每個版本都位于pyenv根目錄中:

      $ ls ~/.pyenv/versions/ 2.7.15 3.6.8 3.8-dev

      1

      2

      你所有的版本都將位于此處。這很方便,因為刪除這些版本很簡單:

      $ rm -rf ~/.pyenv/versions/2.7.15

      1

      當然,pyenv還提供了用于卸載特定Python版本的命令:

      $ pyenv uninstall 2.7.15

      1

      3.2、使用新的Python

      現在,你已經安裝了兩個不同的Python版本,下面讓我們看一些使用它們的基礎知識。首先,檢查可用的Python版本:

      $ pyenv versions * system (set by /home/realpython/.pyenv/version) 2.7.15 3.6.8 3.8-dev

      1

      2

      3

      4

      5

      *表示系統(tǒng)Python版本當前處于活動狀態(tài)。你還會注意到,這是由pyenv根目錄中的文件設置的。這意味著,默認情況下,你仍在使用系統(tǒng)Python:

      $ python -V Python 2.7.12

      1

      2

      如果你嘗試使用哪個來確認,你將看到:

      $ which python /home/realpython/.pyenv/shims/python

      1

      2

      這可能令人驚訝,但這就是pyenv的工作方式。 pyenv會將其自身插入PATH,從操作系統(tǒng)的角度來看,這是被調用的可執(zhí)行文件。如果要查看實際路徑,可以運行以下命令:

      $ pyenv which python /usr/bin/python

      1

      2

      例如,如果你想使用版本2.7.15,則可以使用global命令:

      $ pyenv global 2.7.15 $ python -V Python 2.7.15 $ pyenv versions system * 2.7.15 (set by /home/realpython/.pyenv/version) 3.6.8 3.8-dev

      1

      2

      3

      4

      5

      6

      7

      8

      9

      提示:讓你放心,剛安裝的Python版本正常運行的一種好方法是運行內置的測試套件:

      $ pyenv global 3.8-dev $ python -m test

      1

      2

      這將啟動許多內部Python測試,這些測試將驗證你的安裝。你可以放心觀看測試通過,測試完成后有如下提示信息。

      ... == Tests result: SUCCESS == 390 tests OK. 24 tests skipped: test_asdl_parser test_clinic test_curses test_dbm_gnu test_dbm_ndbm test_devpoll test_gdb test_kqueue test_msilib test_ossaudiodev test_smtpnet test_socketserver test_startfile test_timeout test_tix test_tk test_ttk_guionly test_urllib2net test_urllibnet test_winconsoleio test_winreg test_winsound test_xmlrpc_net test_zipfile64 2 tests run no tests: test_dtrace test_future4 Total duration: 17 min 56 sec Tests result: SUCCESS ...

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      如果你想返回默認的Python系統(tǒng)版本,則可以運行以下命令:

      $ pyenv global system $ python -V Python 2.7.12

      1

      2

      3

      現在,你可以輕松地在不同版本的Python之間切換。這僅僅是開始。如果要切換的版本很多,那么連續(xù)鍵入這些命令將很麻煩。本節(jié)介紹了基礎知識,但在多個環(huán)境中使用時,描述了更好的工作流程。

      3.3、探索pyenv命令

      pyenv提供了許多命令。你可以使用以下命令查看所有可用命令的完整列表:

      $ pyenv commands activate commands completions deactivate ... virtualenvs whence which

      1

      2

      3

      4

      5

      6

      7

      8

      9

      這將輸出所有命令名稱。每個命令都有一個--help標志,它將為你提供更多詳細信息。例如,如果你想查看有關shims命令的更多信息,則可以運行以下命令:

      $ pyenv shims --help Usage: pyenv shims [--short] List existing pyenv shims

      1

      2

      3

      4

      幫助消息描述了該命令的用途以及可以與該命令結合使用的所有選項。在以下各節(jié)中,你將快速,概括地了解最常用的命令。

      3.3.1、install

      你已經在上面看到了install命令。該命令可用于安裝特定版本的Python。例如,如果你想安裝3.6.8,則可以使用以下命令:

      $ pyenv install 3.6.8

      1

      輸出顯示了pyenv下載和安裝Python。你可能要使用的一些常見標志如下:

      3.3.2、versions

      versions命令顯示當前所有已安裝的Python版本:

      $ pyenv versions * system (set by /home/realpython/.pyenv/version) 2.7.15 3.6.8 3.8-dev

      1

      2

      3

      4

      5

      此輸出不僅顯示2.7.15、3.6.8、3.8-dev和system Python已安裝,而且還顯示system Python已處于活動狀態(tài)。如果只關心當前的活動版本,則可以使用以下命令:

      $ pyenv which pip /home/realpython/.pyenv/versions/3.6.8/bin/pip

      1

      2

      輸出顯示pip的完整系統(tǒng)路徑。當你安裝了命令行應用程序時,這將很有幫助。

      3.3.3、global

      global命令設置全局Python版本。可以用其他命令覆蓋它,但是對于確保默認情況下使用特定的Python版本很有用。如果要默認使用3.6.8,則可以運行以下命令:

      $ pyenv global 3.6.8

      1

      此命令將 ~/.pyenv/version 設置為3.6.8

      3.3.4、local

      local命令通常用于設置特定于應用程序的Python版本。你可以使用它將版本設置為2.7.15:

      $ pyenv local 2.7.15

      1

      此命令在當前目錄中創(chuàng)建一個.python-version文件。如果你的環(huán)境中有pyenv處于活動狀態(tài),則此文件將自動為你激活該版本。

      3.3.5、shell

      shell命令用于設置特定于外殼的Python版本。例如,如果要測試3.8-dev版本的Python,可以執(zhí)行以下操作:

      $ pyenv shell 3.8-dev

      1

      該命令激活通過設置PYENV_VERSION環(huán)境變量指定的版本。此命令將覆蓋你可能擁有的所有應用程序或全局設置。如果要停用版本,可以使用--unset標志。

      pyenv shell --unset

      1

      4、指定你的Python版本

      pyenv最令人困惑的部分之一是python命令如何被準確解析以及可以使用哪些命令對其進行修改。如命令中所述,有3種方法可以修改你使用的python版本。那么所有這些命令如何相互交互?解析順序看起來像這樣:

      該金字塔應從上至下閱讀。 pyenv可以找到的第一個選項是它將使用的選項。讓我們來看一個簡單的例子:

      $ pyenv global 3.6.8 $ pyenv versions system 2.7.15 * 3.6.8 (set by /home/realpython/.pyenv/version) 3.8-dev

      1

      2

      3

      4

      5

      6

      你可以看到pyenv現在希望使用3.6.8作為我們的Python版本。它甚至指示找到的文件的位置。該文件確實存在,你可以列出其內容:

      $ cat ~/.pyenv/version 3.6.8

      1

      2

      現在,我們使用本地創(chuàng)建一個.python-version文件:

      $ pyenv local 2.7.15 $ pyenv versions system * 2.7.15 (set by /home/realpython/.python-version) 3.6.8 3.8-dev $ ls -a . .. .python-version $ cat .python-version 2.7.15

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      再次,pyenv指出了它將如何解析我們的python命令。這次來自?/.python-version。請注意,搜索.python-version是遞歸的:

      $ mkdir subdirectory $ cd subdirectory $ ls -la # Notice no .python-version file . .. $ pyenv versions system * 2.7.15 (set by /home/realpython/.python-version) 3.6.8 3.8-dev

      1

      2

      3

      4

      5

      6

      7

      8

      9

      即使子目錄中沒有.python-version,該版本仍設置為2.7.15,因為父目錄中存在.python-version。那如何取消呢?

      答案就是刪除父目錄的.python-version文件

      rm -rf .python-version

      1

      最后,你可以使用shell設置Python版本:

      $ pyenv shell 3.8-dev $ pyenv versions system 2.7.15 3.6.8 * 3.8-dev (set by PYENV_VERSION environment variable)

      1

      2

      3

      4

      5

      6

      所有這些都設置了$PYENV_VERSION環(huán)境變量:

      $ echo $PYENV_VERSION 3.8-dev

      1

      2

      注意shell設置的只對當前終端有效,當前終端關閉后,即失效!

      如果你對這些選項感到不知所措,則下述有關《使用多個環(huán)境》的部分將介紹一個專心管理這些文件的過程,主要是使用local方法。

      還有一點需要特別注意的,優(yōu)先級順序:shell > local > global,高優(yōu)先級可以覆蓋低優(yōu)先級,但是低優(yōu)先級不能覆蓋高優(yōu)先級!

      5、虛擬環(huán)境和pyenv

      虛擬環(huán)境是管理Python安裝和應用程序的重要組成部分。如果你以前從未聽說過虛擬環(huán)境,則可以查看《 Python虛擬環(huán)境:入門》。

      虛擬環(huán)境和pyenv是天作之合。 pyenv有一個很棒的插件pyenv-virtualenv,使用多個Python版本和多個虛擬環(huán)境變得輕而易舉。如果你想知道pyenv,pyenv-virtualenv和virtualenv或venv之類的工具之間有什么區(qū)別,請不要擔心。你不是一個人。

      這是你需要了解的內容:

      pyenv:管理Python本身的多個版本。

      virtualenv/venv:管理特定Python版本的虛擬環(huán)境。

      pyenv-virtualenv:管理跨不同版本的Python的虛擬環(huán)境。

      如果你是頑固的virtualenv或venv用戶,請不要擔心:pyenv可以很好地與任何一個配合使用。實際上,你可以根據需要保留相同的工作流程,盡管我認為pyenv-virtualenv在需要使用不同Python版本的多個環(huán)境之間切換時會帶來更好的體驗。

      好消息是,由于你使用pyenv-installer腳本安裝pyenv,因此你已經安裝了pyenv-virtualenv并可以使用。

      5.1、創(chuàng)建虛擬環(huán)境

      創(chuàng)建虛擬環(huán)境是一個命令:

      $ pyenv virtualenv

      1

      從技術上講,是可選的,但是你應該考慮始終指定它,以便確定所使用的Python版本。

      只是一個名稱,可幫助你將環(huán)境分開。好的做法是為你的環(huán)境命名與項目相同的名稱。例如,如果你正在開發(fā)myproject并想針對Python 3.6.8進行開發(fā),則可以運行以下命令:

      $ pyenv virtualenv 3.6.8 myproject

      1

      輸出中包含顯示一些額外的Python軟件包安裝信息的消息,即wheel,pip和setuptools。嚴格來說,這是為了方便起見,只是為你的每個虛擬環(huán)境設置了一個功能更全的環(huán)境。

      5.2、激活虛擬環(huán)境

      現在你已經創(chuàng)建了虛擬環(huán)境,下一步就是使用它。通常,你應該通過運行以下命令來激活環(huán)境:

      pyenv local myproject

      1

      你之前已經看過pyenv local命令,但是這次,你沒有指定Python版本,而是指定了環(huán)境。這將在當前工作目錄中創(chuàng)建一個.python-version文件,并且由于你在環(huán)境中運行了$(pyenv virtualenv-init -),該環(huán)境將被自動激活。

      你可以通過運行以下命令進行驗證:

      $ pyenv which python /home/realpython/.pyenv/versions/myproject/bin/python

      1

      2

      你可以看到已經創(chuàng)建了一個名為myproject的新版本,并且python可執(zhí)行文件指向該版本。如果查看此環(huán)境提供的任何可執(zhí)行文件,你將看到相同的內容。以pip為例:

      $ pyenv which pip /home/realpython/.pyenv/versions/myproject/bin/pip

      1

      2

      如果你沒有配置eval "$(pyenv virtualenv-init -)"在shell中運行,則可以使用以下方法手動激活/停用Python版本:

      $ pyenv activate $ pyenv deactivate

      1

      2

      上面是pyenv-virtualenv進入或退出帶有.python-version文件的目錄時的操作。

      注:在激活虛擬環(huán)境的時候,會有這樣一句提示

      pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

      1

      6、使用多種環(huán)境

      將你學到的所有知識放在一起,即可在多種環(huán)境中有效工作。假設你安裝了以下版本:

      $ pyenv versions * system (set by /home/realpython/.pyenv/version) 2.7.15 3.6.8 3.8-dev

      1

      2

      3

      4

      5

      現在,你要處理兩個不同的,恰當地命名的項目:

      1、project1 supports Python 2.7 and 3.6.

      2、project2 supports Python 3.6 and experiments with 3.8-dev.

      你可以看到,默認情況下,你使用的是系統(tǒng)Python,在pyenv版本輸出中由*表示。首先,為第一個項目創(chuàng)建一個虛擬環(huán)境:

      $ cd project1/ $ pyenv which python /usr/bin/python $ pyenv virtualenv 3.6.8 project1 ... $ pyenv local project1 $ python -V /home/realpython/.pyenv/versions/project1/bin/python

      1

      2

      3

      4

      5

      6

      7

      8

      最后,請注意,當你從目錄中cd離開時,你將默認返回系統(tǒng)Python:

      $ cd $HOME $ pyenv which python /usr/bin/python

      1

      2

      3

      你可以按照上述步驟為project2創(chuàng)建虛擬環(huán)境:

      $ cd project2/ $ pyenv which python /usr/bin/python $ pyenv virtualenv 3.8-dev project2 ... $ pyenv local 3.8-dev $ pyenv which python /home/realpython/.pyenv/versions/3.8-dev/bin/python

      1

      2

      3

      4

      5

      6

      7

      8

      這些是你項目的一個步驟。現在,當你在項目之間進行cd時,你的環(huán)境將自動激活:

      $ cd project2/ $ python -V Python 3.8.0a0 $ cd ../project1 $ python -V Python 3.6.8

      1

      2

      3

      4

      5

      6

      無需再記住要激活的環(huán)境:你可以在所有項目之間進行切換,而pyenv將負責自動激活正確的Python版本和正確的虛擬環(huán)境。

      7、同時激活多個版本

      如上面的示例中所述,project2使用3.8中的實驗功能。假設你想確保你的代碼仍可在Python 3.6上運行。如果你嘗試運行python3.6,則會得到以下信息:

      $ cd project2/ $ python3.6 -V pyenv: python3.6: command not found The `python3.6' command exists in these Python versions: 3.6.8 3.6.8/envs/project1 project1

      1

      2

      3

      4

      5

      6

      7

      8

      pyenv通知你,盡管Python 3.6在當前活動環(huán)境中不可用,但在其他環(huán)境中可用。 pyenv提供了一種使用熟悉的命令一次激活多個環(huán)境的方法:

      $ pyenv local project2 3.6.8

      1

      這向pyenv表示你要使用虛擬環(huán)境project2作為第一個選項。因此,如果在兩個環(huán)境中都可以解析命令(例如python),它將在3.6.8之前選擇project2。讓我們看看運行此命令會發(fā)生什么:

      $ python3.6 -V Python 3.6.8

      1

      2

      在這里,pyenv嘗試查找python3.6命令,并且由于它是在活動的環(huán)境中找到的,因此它允許命令執(zhí)行。這對于諸如tox之類的工具非常有用,該工具要求PATH上必須有多個Python版本才能執(zhí)行。

      提示:如果你使用的是tox和pyenv,則應檢出tox-pyenv軟件包。

      假設在上面的示例中,你發(fā)現了庫的兼容性問題,并且希望進行一些本地測試。該測試要求你安裝所有依賴項。你應該按照以下步驟創(chuàng)建新環(huán)境:

      $ pyenv virtualenv 3.6.8 project2-tmp $ pyenv local project2-tmp

      1

      2

      對本地測試感到滿意后,你可以輕松切換回默認環(huán)境:

      $ pyenv local project2 3.6.8

      1

      8、總結

      現在,你可以更輕松地為想要支持多個環(huán)境的項目做出貢獻。你還可以使用一個出色的工具pyenv來更輕松地測試最新和最好的Python版本,而不必擔心搞亂你的開發(fā)機器。

      你已經了解了pyenv如何為你提供幫助:

      安裝多個版本的Python

      在安裝的版本之間切換

      在pyenv中使用虛擬環(huán)境

      自動激活不同的Python版本和虛擬環(huán)境

      參考

      Managing Multiple Python Versions With pyenv

      Simple Python Version Management: pyenv

      Python多版本管理器-pyenv 介紹及部署記錄

      Python Virtual Environments: A Primer

      pyenv 讓 python 版本完美切換

      https Python Ubuntu

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:圖片工具里的摳除背景是要開會員才能有嗎(摳圖怎么把背景扣掉)
      下一篇:如何在Excle表格中制作一個按鈕?
      相關文章
      亚洲色婷婷一区二区三区| 国产精品亚洲综合天堂夜夜| 亚洲免费在线观看| 国产精品亚洲天堂| 亚洲一区二区三区久久| 亚洲成人黄色网址| 亚洲国产美女视频| 亚洲一区二区三区在线| 精品亚洲AV无码一区二区三区 | 亚洲免费电影网站| 亚洲沟沟美女亚洲沟沟| 亚洲嫩草影院在线观看| 亚洲中文无码a∨在线观看| 亚洲一级毛片免费在线观看| 亚洲一区二区三区精品视频| 亚洲中文字幕无码av在线| 四虎必出精品亚洲高清| 亚洲日韩一区二区三区| 亚洲JLZZJLZZ少妇| 国产亚洲男人的天堂在线观看 | 亚洲福利精品一区二区三区| 亚洲av无码乱码在线观看野外| 亚洲成a人片在线播放| 最新亚洲成av人免费看| 国产精品亚洲精品日韩已满| 亚洲av永久无码精品表情包| 亚洲综合日韩中文字幕v在线| 亚洲黄色一级毛片| 亚洲影视自拍揄拍愉拍| 亚洲人成电影网站色| 全亚洲最新黄色特级网站 | 亚洲日韩在线视频| 亚洲高清有码中文字| 亚洲aⅴ无码专区在线观看 | 午夜亚洲国产精品福利| 在线亚洲精品自拍| 亚洲爱情岛论坛永久| 亚洲午夜成激人情在线影院| 亚洲人成未满十八禁网站| 日韩亚洲翔田千里在线| 国产亚洲人成A在线V网站|