pyenv 的原理,簡單的說就是在系統path 最前面插入乙個 $(pyenv root)/shims 目錄。這樣, pyenv 就可以通過控制 shims 目錄中的python版本號,來靈活地切換至我們所需的python版本。
pyenv有多種安裝方法,大家可以去github的pyenv檢視,官方推薦用基於github的安裝方式。
我也是用這種方法來安裝的,這種方法同時安裝pyenv的多個外掛程式,很有用,而且python版本庫也是最新的。
安裝
curl -l
/pyenv-installer/master
/bin/pyenv-installer | bash
除了安裝pyenv之外,同時還安裝了以下外掛程式:
pyenv-doctor
pyenv-installer
pyenv-update
pyenv-virtualenv
pyenv-which-ext
安裝完成後,開啟~/.bashrc,把以下命令新增到系統環境變數:
export path=$home/.pyenv/bin:$path
eval
"$(pyenv init -)"
eval
"$(pyenv virtualenv-init -)"
然後執行source ~/.bashrc。
然後在命令列執行pyenv -v就可以檢視安裝的pyenv資訊了。
ps:為了確定pyenv是否正確安裝,可以執行pyenv doctor檢視。
公升級
pyenv update
解除安裝:
pyenv安裝在$pyenv_root(預設:~/.pyenv
)下,要解除安裝,直接移除目錄即可。
rm -rf ~/.pyenv
再在環境變數檔案刪除一下三行:
export path=$home/.pyenv/bin:$path
eval
"$(pyenv init -)"
eval
"$(pyenv virtualenv-init -)"
檢視pyenv版本資訊pyenv -v
公升級pyenvpyenv update
檢視可安裝的python版本pyenv
install--
list
安裝指定版本的python環境# 這裡我安裝3.6.2
# 同樣的,需要安裝一些依賴包,不然會報錯
yum install -y zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel
pyenv install 3.6
.2
檢視系統中可用的python版本
# 處於啟用狀態的版本前面標了*
pyenv versions
檢視當前處於啟用狀態的版本# 括號中內容表示這個版本是由哪條途徑啟用的(global、local、shell)
pyenv version
解除安裝乙個版本pyenv uninstall 3.6.2
更新資料庫# 一般安裝或解除安裝python版本最好更新一下資料庫
pyenv rehash
切換python版本pyenv 有global(當前系統),local(當前目錄),shell三個等級來管理python環境。優先順序shell > local > global
當前目錄中的 .python-version 配置優先於系統全域性的 ~/.pyenv/version 配置。
[root@localhost mx]# pwd
/root/mx
# 切換全域性python環境為系統版本(2.6.6)
[root@localhost mx]# pyenv global system
[root@localhost mx]# pyenv version
system (set by
/root/.pyenv/version)
[root@localhost mx]# python -v
python 2.6
.6# 切換此目錄python環境為3.6.2
[root@localhost mx]# pyenv local 3.6.2
[root@localhost mx]# pyenv version
3.6.2 (set by
/root/mx/.python-version)
[root@localhost mx]# pip -v
pip 9.0
.1 from /root/.pyenv/versions/3.6
.2/lib/python3.6/site-packages (python 3.6)
建立虛擬環境
我們一般會為乙個專案建立乙個虛擬環境,pyenv同樣可以實現類似virtualenv這樣的功能。
# 命令格式為pyenv virtualenv python_version project_name
[root@localhost ~]# pyenv virtualenv 3.6.2 myblog_py36
檢視虛擬環境列表pyenv virtualenvs
[root@localhost ~]# pyenv virtualenvs
3.6.2/envs/myblog_py36 (created from /root/.pyenv/versions/3.6
.2) myblog_py36 (created from /root/.pyenv/versions/3.6
.2)
進入虛擬環境pyenv active env_name
# 我們可以把專案目錄的local環境指定為建立的虛擬環境,這樣就可以用local或者activate兩種方法進入虛擬環境了。
[root@localhost ~]# pyenv activate myblog_py36
(myblog_py36) [root@localhost ~]# pip -v
pip 9.0
.1 from /root/.pyenv/versions/3.6
.2/envs/myblog_py36/lib/python3.6/site-packages (python 3.6)
退出虛擬環境pyenv deactivate env_name
(myblog_py36) [root@localhost ~]# pyenv deactivate
[root@localhost ~]# pyenv version
system (set by
/root/.pyenv/version)
[root@localhost ~]#
解除安裝虛擬環境pyenv uninstall env_name
pyenv多版本管理
多版本管理 多虛擬環境virtualenv pyenv用於多個python版本的管理,virtualenv用於相同版本各種模組包環境的隔離 可能的依賴包 yum install gcc gcc c yum install readline devel yum install y bzip2 bzip...
Ubuntu通過Pyenv管理python版本
網上安裝使用pyenv的教程很多,但是實測有很多教程有坑,經過多家比較發現下面的教程可用,內容全面,與大家分享。首先安裝pyenv全家桶 配置環境變數到 bashrc中,配置完成後輸入source bashrc生效 1 export pyenv root home pyenv 2 export pa...
python多版本共存之pyenv
也許你開發中也會遇到需要不同版本的python,此時需要在系統中安裝多個,但又不能影響系統自帶的 python,即需要實現 python 的多版本共存。pyenv 就是這樣乙個 python 版本管理器 pyenv官方 git clone git pyenv echo export pyenv ro...