安裝
$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
安裝后配置
安裝完成后,pyenv命令還沒有加進系統的環境變量,需要將如下內容加到~/.bash_profile
中,然后執行source ~/.bash_profile
。
export PATH=$HOME/.pyenv/bin:$PATH
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
完成以上操作后,pyenv就安裝完成了。
$ pyenv -v
pyenv 1.2.2
update
通過pyenv update
命令,可以更新pyenv的所有內容。
查看所有可安裝的Python版本
$ pyenv install --list |more
Available versions:
2.1.3
2.2.3
2.3.7
2.4
2.4.1
...
安裝指定版本的Python環境
$ pyenv install 3.6.0
查看當前系統中所有可用的Python版本
$ pyenv versions
* system
3.4.3
3.5.0b1
3.6.4
切換Python版本
pyenv可以從三個維度來管理Python環境,簡稱為:當前系統、當前目錄、當前shell。這三個維度的優先級從左到右依次升高,即當前系統的優先級最低、當前shell的優先級最高。
如果想修改系統全局的Python環境,可以采用pyenv global PYTHON_VERSION
命令。該命令執行后會在$(pyenv root)
目錄(默認為~/.pyenv
)中創建一個名為version的文件(如果該文件已存在,則修改該文件的內容),里面記錄著系統全局的Python版本號。
$ pyenv global 2.7.13
$ cat ~/.pyenv/version
2.7.13
$ pyenv version
2.7.13
$ pyenv global 3.6.0
$ cat ~/.pyenv/version
3.6.0
$ pyenv version
3.6.0
通常情況下,對于特定的項目,我們可能需要切換不同的Python環境,這個時候就可以通過pyenv local PYTHON_VERSION
命令來修改當前目錄的Python環境。命令執行后,會在當前目錄中生成一個.python-version
文件(如果該文件已存在,則修改該文件的內容),里面記錄著當前目錄使用的Python版本號。
$ cat ~/.pyenv/version
2.7.13
$ pyenv local 3.6.0
$ cat .python-version
3.6.0
$ cat ~/.pyenv/version
2.7.13
$ pyenv version
3.6.0
$ pip -V
pip 9.0.1
可以看出,當前目錄中的.python-version
配置優先于系統全局的~/.pyenv/version
配置。
另外一種情況,通過執行pyenv shell PYTHON_VERSION
命令,可以修改當前shell的Python環境。執行該命令后,會在當前shell session(Terminal窗口)中創建一個名為PYENV_VERSION
的環境變量,然后在當前shell的任意目錄中都會采用該環境變量設定的Python版本。此時,當前系統和當前目錄中設定的Python版本均會被忽略。
$ echo $PYENV_VERSION
$ pyenv shell 3.6.0
$ echo $PYENV_VERSION
3.6.0
$ cat .python-version
2.7.13
$ pyenv version
3.6.0
顧名思義,當前shell的Python環境僅在當前shell中生效,重新打開一個新的shell后,該環境也就失效了。如果想在當前shell中取消shell級別的Python環境,采用unset命令重置PYENV_VERSION
環境變量即可。
$ cat .python-version
2.7.13
$ pyenv version
3.6.0
$ unset PYENV_VERSION
$ pyenv version
2.7.13
Pycharm 如何切換 Pyenv 管理的安裝包
當你使用pyenv切換了python版本時.Pycharm不會自動切換到對應的python. 需要自己手動的添加對應版本的絕對路徑到Pycharm.
在Add Local 中添加pyenv管理的絕對路徑.