Cody Blog

Software development

使用 Pyenv 管理多個 Python 版本

pyenv 是一個 Python 版本管理器,也可以安裝 pyenv-virtualenv 達來支援 virtualenv 的功能。

安裝 pyenv 和 pyenv-virtualenv

:::console
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
$ sudo pip install virtualenv

In Ubuntu:

$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm

Or, 使用yyuu/pyenv-installer

把下列加到 ~/.bashrc

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

安裝其它版本的 Python

查看可供安裝的 python 版本

:::console
$ pyenv install -l
...
3.4.0
3.4.1
3.4-dev
...

如果想要裝 3.4.1 的話,就使用pyenv install

:::console
$ pyenv install 3.4.1

設置 Python 版本

先用pyenv versions 取得目前已安裝 Python 的版本

:::console
$ pyenv versions
* system
  3.4.1

顯示目前預設是 system, 而可以切換到 3.4.1 的版本

:::console
$ pyenv global <version> # set global python version 
$ pyenv local <version>  #在當前目錄創建一個.python-version,以後進入這個目錄自動切換爲該版本 
$ pyenv shell <version>  #在當前shell的session裏啓用某個Python版本,優先級高於global,local

查看目前使用的 python 版本

pyenv 可以設定三種 scope,分別是 global, local 和 shell。shell 是只有當次登入 shell 有效,而 global 則是有修改系統 python 版本的效果, 我最常用的是 local,會更改當下目錄使用的 python 版本。

:::console
$ pyenv global
$ pyenv local
$ pyenv shell

使用 pyenv-virtualenv

新增一個 virtualenv uber

:::console
$ pyenv virtualenv 3.4.1 uber

此時會發現多了一個 python

:::console
$ pyenv versions
  system
  3.4.1
* uber (set by /home/cwliu/Downloads/uber/.python-version)

在此目錄使用該 virtualenv

:::console
$ pyenv local uber

Python

Related Posts

Comments