pyenv 目前是管理 Python 版本的最佳方案,是开发环境必备的工具之一。

下载

Ubuntu

必备环境

1
2
$ sudo apt update
$ sudo apt -y install git gcc make patch zlib1g.dev libgdbm-dev libssl-dev libsqlite3-dev libbz2-dev libreadline-dev

安装

1
$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

配置环境变量

1
2
3
4
5
6
$ vim ~/.bash_profile

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

CentOS

必备环境

1
2
$ sudo yum -y update
$ sudo yum -y install git gcc readline readline-devel readline-static openssl openssl-devel openssl-static sqlite-devel bzip2-devel bzip2-libs

安装

1
$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

配置环境变量

1
2
3
4
5
6
$ vim ~/.bash_profile

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

macOS

必备环境

1
2
$ xcode-select --install
$ brew install readline xz zlib

安装

1
$ brew install pyenv

配置环境变量

1
2
3
4
5
6
7
8
9
$ vim ~/.bash_profile

export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH="${PYENV_ROOT}/bin:${PATH}"
eval "$(pyenv init -)"
fi
CFLAGS="-I$(brew --prefix openssl)/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib" \

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ pyenv install -list       # 可安装版本列表

# 下载指定版本 python
$ pyenv install 3.5.0
$ pyenv install -v 3.5.0

# 查看当前所用版本
$ pyenv version
system (set by /home/wxnacy/.pyenv/version)

# 查看本地版本列表
$ pyenv versions
* system (set by /home/wxnacy/.pyenv/version) # 系统python环境 *号代表当前环境版本
3.5.0 # 刚下载的3.5.0版本

# 设置全局为某一个环境
$ pyenv global 3.5.0

# 设置当前目录为某一个 python 版本
$ pyenv local 3.5.0

# 更新
$ pyenv update

# 卸载
$ rm -rf ~/.pyenv # 并移除环境变量即可

virtualenv

假如你想在 3.5.0 版本下做两个不同的项目,并且希望他们的环境互相独立,那么这个时候 virtualenv 就派上用场了,它是在 pyenv 的基础上做的更独立的虚拟环境。

创建

1
2
3
4
5
6
$ pyenv virtualenv 3.5.0 env_350
$ pyenv versions
* system (set by /home/wxnacy/.pyenv/version)
3.5.0
3.5.0/envs/env_350
env_350

查看环境后我们发现多了两个环境 3.5.0/envs/env_350env_350,它们指定同一个虚拟机,通常使用名称 env_350

进入、退出虚拟机

1
2
3
$ pyenv activate env_350    # 使用

$ pynev deactivate # 退出

该命令只在当前 shell 有效,如果想永久有效,需要配合 pyenv 的 local, global 命令。

03-17 02:43