CentOS上安裝pyenv:
在安裝pyenv前,需要先安裝如下的依賴包:
在 CentOS/RHEL/Fedora 下:yum install readline readline-devel readline-static
yum install openssl openssl-devel openssl-static
yum install sqlite-devel
yum install bzip2-devel bzip2-libs
安裝pyenv如下指令:
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
會自動建立了一個/root/.pyenv的目錄,存放它的各種配置檔案。
vim ~/.bash_profile 添加如下3行:export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
source ~/.bash_profile
常用指令:
pyenv install --list # 列出目前可用的python版本
pyenv install 3.6.0 # 安裝3.6.0版本的python
pyenv rehash # 更新資料庫,在安裝 Python 或者其他帶有可執行檔案的子產品之後,需要對資料庫進行更新:
pyenv versions # 列出目前本機上已經安裝有哪些版本的python
pyenv local 3.6.0 # 切換python版本,在目前目錄及子目錄下改變python版本(這個設定在我們切換到其它目錄就失效
pyenv local --unset # 取消改變,恢複為system版本的python
pyenv global 3.6.0 # 全局改變python版本【強烈不建議使用】
pyenv shell 3.6.0 # 改變目前shell的python版本(在目前shell始終是生效的)
其他幾個指令:
pyenv uninstall 3.6.0 # 解除安裝3.6.0版本的python(注意解除安裝後,還要去 /root/.pyenv/version删掉對應的行,不然使用pyenv versions 時候還會有警告)
pyenv update # 更新pyenv版本
####### 重點:使用pyenv管理virtualenv #####
[[email protected] /root]#pyenv virtualenv 3.6.0 proj1 # 産生一個proj1的虛拟環境,采用3.6.0版本的python(3.6.0的python需要事先安裝好)
[[email protected] /root]# pyenv versions 檢視目前已配置了哪些pyenv
system
* 3.6.0 (set by PYENV_VERSION environment variable)
3.6.0/envs/proj1 #新版本的pyenv都是放到這種路徑下的
proj # 這個是相容舊版本存在的
[[email protected] /root]# pyenv local 3.6.0/envs/proj1 切換到建立的proj1環境下(必須事先存在這個proj1)
(3.6.0/envs/proj1) [[email protected] /root]# pyenv version # 可以看到PS1的内容已經變了,前面多了(3.6.0/envs/proj1)
3.6.0/envs/proj1 (set by /root/.python-version)
## 檢視下這個虛拟環境的存放路徑:
(3.6.0/envs/proj1) [[email protected] /root]# cd /root/.pyenv/versions/
(3.6.0/envs/proj1) [[email protected] /root/.pyenv/versions]# ll
total 0
drwxr-xr-x 7 root root 63 2017-05-06 13:52 3.6.0/
lrwxrwxrwx 1 root root 38 2017-05-06 14:38 proj1 -> /root/.pyenv/versions/3.6.0/envs/proj1/ # 可以看到是軟連結
(3.6.0/envs/proj1) [[email protected] /root]# pyenv local system 回到系統預設的python版本
[[email protected] /root]#
[[email protected] /root]# pyenv uninstall proj1 或 pyenv virtualenv-delete proj1 删除proj1這個虛拟環境
pyenv-virtualenv: remove /root/.pyenv/versions/3.6.0/envs/proj1? y
[[email protected] /root]# pyenv versions
* system (set by /root/.python-version) # 可以看到proj1已經沒有了
[[email protected] /root]# pyenv virtualenvs 檢視目前已配置了哪些virtualenv