經常遇到這樣的情況:
系統自帶的 python 是 2.6,自己需要 python 2.7 中的某些特性;
系統自帶的 python 是 2.x,自己需要 python 3.x;
此時需要在系統中安裝多個 python,但又不能影響系統自帶的 python,即需要實現 python 的多版本共存。pyenv 就是這樣乙個 python 版本管理器。
安裝 pyenv
在終端執行如下命令以安裝 pyenv 及其外掛程式:
1 $ curl -l | bash
安裝完成後,根據提示將如下語句加入到 ~/.bashrc 中:
1 2
3 4
export pyenv_root=」ho
me/.
pyen
v」ex
port
path
=」pyenv_root/bin:pa
th」e
val「
(pyenv init -)」
eval 「$(pyenv virtualenv-init -)」 # 這句可以不加
然後重啟終端即可。
安裝 python
檢視可安裝的版本
1 $ pyenv install –list
該命令會列出可以用 pyenv 安裝的 python 版本。列表很長,僅列舉其中幾個:
2.7.8 # python 2 最新版本
3.4.1 # python 3 最新版本
anaconda2-4.1.0 # 支援 python 2.6 和 2.7
anaconda3-4.1.0 # 支援 python 3.3 和 3.4
其中 2.7.8 和 3.4.1 這種只有版本號的是 python 官方版本,其他的形如 anaconda2-4.1.0 這種既有名稱又有版本後的屬於 「衍生版」 或發行版。
安裝 python 的依賴包
在編譯 python 過程中會依賴一些其他庫檔案,因而需要首先安裝這些庫檔案,已知的一些需要預先安裝的庫如下。
在 centos/rhel/fedora 下:
sudo yum install readline readline-devel readline-static
sudo yum install openssl openssl-devel openssl-static
sudo yum install sqlite-devel
sudo yum install bzip2-devel bzip2-libs
在 ubuntu下:
sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
sudo apt-get install llvm libncurses5-dev libncursesw5-dev
安裝指定版本
使用者可以使用 pyenv install 安裝指定版本的 python。如果你不知道該用哪乙個,推薦你安裝 anaconda3 的最新版本,這是乙個專為科學計算準備的發行版。
1 2
3 4
$ pyenv install anaconda3-4.1.0 -v
/tmp/python-build.20170108123450.2752 ~
downloading anaconda3-4.1.0-linux-x86_64.sh…
->
更新資料庫
在安裝 python 或者其他帶有可執行檔案的模組之後,需要對資料庫進行更新:
1 $ pyenv rehash
檢視當前已安裝的 python 版本
1 2
3 $ pyenv versions
* system (set by /home/seisman/.pyenv/version)
anaconda3-4.1.0
其中的星號表示當前正在使用的是系統自帶的 python。
設定全域性的 python 版本
1 2
3 4 py
envg
loba
lana
cond
a3−4.1.0
pyenv versions
system
* anaconda3-4.1.0 (set by /home/seisman/.pyenv/version)
當前全域性的 python 版本已經變成了 anaconda3-4.1.0。也可以使用 pyenv local 或 pyenv shell 臨時改變 python 版本。
確認 python 版本
>使用 python
輸入 python 即可使用新版本的 python;
系統自帶的指令碼會以 /usr/bin/python 的方式直接呼叫老版本的 python,因而不會對系統指令碼產生影響;
使用 pip 安裝第三方模組時會自動按照到當前的python版本下,不會和系統模組發生衝突。
使用 pip 安裝模組後,可能需要執行 pyenv rehash 更新資料庫;
pyenv 其他功能
pyenv uninstall 解除安裝某個版本
pyenv update 更新 pyenv 及其外掛程式
參考修訂歷史
2013-10-04:初稿;
2014-10-07:將 python 依賴包一段的位置提前;
2016-07-30:使用 pyenv-installer 安裝;
python多版本共存之pyenv
也許你開發中也會遇到需要不同版本的python,此時需要在系統中安裝多個,但又不能影響系統自帶的 python,即需要實現 python 的多版本共存。pyenv 就是這樣乙個 python 版本管理器 pyenv官方 git clone git pyenv echo export pyenv ro...
Python多版本共存之pyenv
經常遇到這樣的情況 此時需要在系統中安裝多個python,但又不能影響系統自帶的python,即需要實現python的多版本共存。pyenv就是這樣乙個python版本管理器。1 2 3 4 5 gitclonegit pyenv echo export pyenv root home pyenv ...
多版本python共存
當不同版本python之間相互不能相容時,可以使用virtualenv建立不同版本python的虛擬環境 當沒有指定python直譯器時 如下 p 即為指定的python版本 將使用預設的全域性python直譯器建立虛擬環境 windows virtualenv p c python27 pytho...