使用 pyenv 管理多個python版本

1) Install related

yum install readline readline-devel readline-static -y
yum install openssl openssl-devel openssl-static -y
yum install sqlite-devel -y
yum install bzip2-devel bzip2-libs -y

2) Install pyenv

git clone git://github.com/yyuu/pyenv.git ~/.pyenv

vim ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH = "$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

source ~/.bashrc
# exec $SHELL

2-1) Installing with homebrew

brew install pyenv

then you’ll need to add

export PYENV_ROOT="$HOME/.pyenv"
export PATH = "$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

to your .bashrc file

3) List all version and install certain version

pyenv install --list
pyenv 3.5.1 install -v
## refresh database
pyenv rehash

## if not new installed version, do like :
pyenv global 3.5.1

4) Managing Multiple Environments

4-1) Install pyenv-virtualenv

1 Check out pyenv-virtualenv into plugin directory

$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

2 (OPTIONAL) Add pyenv virtualenv-init to your shell to enable auto-activation of virtualenvs. This is entirely optional but pretty useful. See “Activate virtualenv” below.

$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

Fish shell note: Add this to your ~/.config/fish/config.fish

status --is-interactive; and source (pyenv virtualenv-init -|psub)

Zsh note: Modify your ~/.zshenvfile instead of`~/.bash_profile.

Pyenv note: You may also need to addeval "$(pyenv init -)"to your profile if you haven’t done so already.

3 Restart your shell to enable pyenv-virtualenv

$ exec "$SHELL"

4-2) Installing with Homebrew (for OS X users)

This is the recommended method of installation if you installed pyenv with Homebrew.

$ brew install pyenv-virtualenv

Or, if you would like to install the latest development release:

$ brew install --HEAD pyenv-virtualenv

After installation, you’ll still need to add

eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

to your profile (as stated in the caveats). You’ll only ever have to do this once.

4-3) pyenv-virtualenv Usages

# 創建新的環境,位於 ~/.pyenv/versions/
$ pyenv virtualenv 2.7.1 env271

# 切換到新的環境
$ pyenv activate env271

# 退回到系統環境
$ pyenv deactivate

# 刪除新創建的環境
$ rm -rf ~/.pyenv/versions/env271/
or
$ pyenv uninstall env271

5) Examples

# 查看當前 pyenv 可檢測到的所有版本,處於激活狀態的版本前以 * 標示。
$ pyenv versions
  system
* 3.5.1 (set by /root/.pyenv/version)
  3.5.1/envs/flask_py351
  3.5.1/envs/pelican
  flask_py351
  pelican

# 查看當前處於激活狀態的版本,括號中內容表示這個版本是由哪條途徑激活的(global、local、shell)
$ pyenv version
3.5.1 (set by /root/.pyenv/version)

# 使用 python-build(一個插件) 安裝一個 Python 版本,到 $PYENV_ROOT/versions 路徑下。
$ pyenv install -v 2.7.3

# 卸載
$ pyenv uninstall 2.7.3

# 爲所有已安裝的可執行文件 (如:~/.pyenv/versions/*/bin/*) 創建 shims,
# 因此,每當你增刪了 Python 版本或帶有可執行文件的包(如 pip)以後,都應該執行一次本命令
$ pyenv rehash

# 設置全局的 Python 版本,通過將版本號寫入 ~/.pyenv/version 文件的方式。
$ pyenv global 3.4.0

# 設置面向程序的本地版本,通過將版本號寫入當前目錄下的 .python-version 文件的方式。
# 通過這種方式設置的 Python 版本優先級較 global 高。pyenv 會從當前目錄開始向上逐級查找 .python-version 文件,直到根目錄爲止。
#若找不到,就用 global 版本。
$ pyenv local 2.7.3

# 設置面向 shell 的 Python 版本,通過設置當前 shell 的 PYENV_VERSION 環境變量的方式。
# 這個版本的優先級比 local 和 global 都要高。--unset 參數可以用於取消當前 shell 設定的版本。
$ pyenv shell pypy-2.2.1
$ pyenv shell --unset

References

pyenv github homepage
pyenv 命令詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章