在 Ubuntu 上安装 Pyenv

Pyenv 是一个 Python 的版本控制系统, 使用它可以在多个 Python 版本, 以及多个不同的发行版(如 Anaconda)中自由切换.

Github 项目地址


安装

依赖

在 Ubuntu/Debian 系统下:

1
2
3
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git

使用脚本自动安装

使用 pyenv-install

安装命令:

1
curl https://pyenv.run | bash

事实上, pyenv.run 将会重定向为以下的地址, 这两条命令的效果是一样的:

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

安装好之后, 需要重启 Shell 以使得更改生效.

升级命令:

1
pyenv update

手动安装

也可以使用 Git 工具直接克隆:

1
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

配置文件

如果使用 zsh, 需要将以下的内容写入 ~/.zshrc 中:

~/.zshrc
1
2
3
4
export PATH="$HOME/.pyenv/bin:$PATH"
export PYENV_ROOT=$HOME/.pyenv
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

卸载

如果只是不想在 Shell 中使用 Pyenv, 那么可以将配置文件 (~/.zshrc 或 ~/.bashrc) 中有关 pyenv init 的一行注释掉.

如果想要完全卸载 Pyenv, 可以执行 (其中 $(pyenv root) 即为 ~/.pyenv):

1
rm -rf $(pyenv root)

之后删除配置文件中与 Pyenv 有关的行.

配置 pip 镜像源

~/.pip/pip.conf
1
2
3
4
5
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

[list]
format=columns

基本命令

1
2
3
4
5
6
7
8
pyenv install --list        # 列出可安装版本
pyenv install <version> # 安装对应版本
pyenv install -v <version> # 安装对应版本,若发生错误,可以显示详细的错误信息
pyenv versions # 显示当前使用的 python 版本
pyenv which python # 显示当前 python 安装路径
pyenv global <version> # 设置默认 Python 版本
pyenv local <version> # 当前路径创建一个 .python-version, 以后进入这个目录自动切换为该版本
pyenv shell <version> # 当前 shell 的 session 中启用某版本,优先级高于 global 及 local

使用 virtualenv:

1
2
3
4
5
6
7
8
9
10
11
12
13
pyenv virtualenv env                # 从默认版本创建虚拟环境
pyenv virtualenv 3.6.4 env-3.6.4 # 创建3.6.4版本的虚拟环境
pyenv activate env-3.6.4 # 激活 env-3.6.4 这个虚拟环境
pyenv deactivate # 停用当前的虚拟环境

# 自动激活
# 使用pyenv local 虚拟环境名
# 会把`虚拟环境名`写入当前目录的.python-version文件中
# 关闭自动激活 -> pyenv deactivate
# 启动自动激活 -> pyenv activate env-3.6.4
pyenv local env-3.6.4

pyenv uninstall env-3.6.4 # 删除 env-3.6.4 这个虚拟环境

在 Ubuntu 上安装 Pyenv

http://blog.czccc.cc/p/ff8dd6c4/

作者

Cheng

发布于

2019-06-07

更新于

2022-08-06

许可协议

评论