1. 程式人生 > >安裝的 Python 版本太多互相干擾?pyenv 建議瞭解一下。

安裝的 Python 版本太多互相干擾?pyenv 建議瞭解一下。

寫在之前

我們都知道現在的 Python 有 Python2 和 Python3,但是由於各種亂七八糟的原因導致這倆哥們要長期共存,榮辱與共,尷尬的是這哥倆的差異還比較大,在很多時候我們可能要同時用到它們,所以就要在 Python2 和 Python3 之間來回的無縫切換。

安裝不同版本的 Python 我已經夠累了,還要在不同版本的 Python 之間切換來切換去那不更得累死?而且不同版本之間並存很容易出現某些玄學的問題。當年選 Python 就是看中它的簡潔優雅,省心省力,沒理由讓我在這種版本問題上操心操力,肯定有什麼解決辦法,果不其然,還真的被我找到了,那就是我今天要給大家介紹的「pyenv」。

「pyenv」 是一個 Python 版本的管理工具,可以進行全域性的 Python 版本切換,也可以給單個專案提供對應的 Python 版本。用了 「pyenv」以後,就可以很容易的安裝不同的 Python 版本,不同版本之間的切換也變得 so easy。

pyenv 的安裝 & 使用

pyenv 的安裝

安裝 pyenv,在這裡我說一個手動安裝的辦法,我們可以從 GitHub 直接下載到本地,首先執行下面的命令:

git clone git://github.com/yyuu/pyenv.git ~/.pyenv

~/.pyenv 是你安裝 pyenv 的時候想要安裝的路徑,推薦大家也安裝在這個路徑下。

安裝的過程如下:

Cloning into '/Users/rocky/.pyenv'...
remote: Enumerating objects: 34, done.
remote: Counting objects: 100% (34/34), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 16518 (delta 12), reused 23 (delta 8), pack-reused 16484
Receiving objects: 100% (16518/16518), 3.22 MiB | 26.00 KiB/s, done.
Resolving deltas: 100% (11199/11199), done.

我們可以看到已經安裝成功,接下來我們要新增一下環境變數:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

環境變數配置成功,接下來我們要重新載入一下配置檔案,你也可以退出以後重新登陸,這樣是為了讓 ~/.bashrc 中的配置生效。在這裡推薦一個做法,可以用 source 命令重新載入配置檔案:

source ~/.bashrc

就這樣,「pyenv」就安裝完成了,我們可以通過命令列來驗證一下它是否安裝成功:

pyenv --help

上面命令列的意思是獲取 prenv 的幫助資訊。

在這裡插入圖片描述

prenv 的使用

我們可以通過 prenv 的 install --list 命令來檢視 prenv 當前支援哪些 Python 版本,具體如下所示:

liyans-MacBook-Pro:~ rocky$ pyenv install --list
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1
  ...

因為版本什麼的實在太多,這裡就不全部列出來了,具體的你可以在自己的電腦上試一下。如果你仔細看就會發現 pyenv 不但可以安裝不同版本的 Python,還可以安裝不同的 Python 實現,喜歡嘗新的同學,可以嘗試安裝一下最新版本的 Python 使用。

具體的想安裝某個版本的 Python,只需要 pyenv install 後面跟上想要安裝的版本號即可,比如想安裝 3.7.1:

pyenv install -v 3.7.1

如果想檢視一下當前你的系統中安裝的 Python 版本,可以輸入下面的命令:

pyenv versions

顯示如下:

* system (set by /Users/rocky/.pyenv/version)
      2.7.1
      3.7.1

由於我安裝了 2 個 Python 版本,加上 mac 自身存在的 Python,當前的系統裡面存在了 3 個不同的 Python 版本。前面帶 「*」表示的是當前正在使用的版本,如果你想切換成別的版本,可以用 prenv global 來選擇,具體的操作如下所示:

pyenv global 3.7.1

然後在檢視一下當前的 versions,如下所示:

pyenv versions
	system
	2.7.1
* 3.7.1 (set by /Users/rocky/.pyenv/version)

使用 pyenv 以後,可以很快速的切換 Python 版本,與之同時被切換的是與版本相關的依賴,例如你切換成 Python3 版本以後,相應的 pip 也會被切換成 pip3,所以不用擔心自己所用的 pip 和當前 Python 版本不匹配。由點及面,所以我們就不用擔心不同的版本會在系統中起衝突。

當人能裝就能刪,如果你想要刪除 Python 版本,使用 uninstall 即可,同樣是後面跟上版本號,比如刪除 2.7.1:

pyenv uninstall 2.7.1

寫在之後

更多內容,歡迎關注公眾號「Python空間」,期待和你的交流。

在這裡插入圖片描述