pyenv入門

安裝

$ 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管理的絕對路徑.

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。