Pyenv Python 版本管理器完整教程
Pyenv 是 Python 社区最流行的多版本管理工具,灵感来自 Ruby 社区的 Rbenv。它允许你在同一台机器上安装和切换多个 Python 版本,而不会影响系统 Python。本文将介绍如何在搬瓦工 VPS 上使用 Pyenv。关于 Python 虚拟环境的使用,请参考 venv 教程。购买搬瓦工使用优惠码 NODESEEK2026 享 6.77% 折扣。
一、安装依赖
# Ubuntu/Debian
apt update
apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev \
xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev git
# CentOS/RHEL
yum install -y gcc make zlib-devel bzip2 bzip2-devel readline-devel \
sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel git
二、安装 Pyenv
# 使用自动安装脚本
curl https://pyenv.run | bash
# 添加到 ~/.bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# 加载配置
source ~/.bashrc
# 验证
pyenv --version
三、安装 Python 版本
# 查看可安装版本
pyenv install --list
# 只看 CPython 版本
pyenv install --list | grep -E "^\s+3\."
# 安装指定版本
pyenv install 3.12.1
pyenv install 3.11.7
pyenv install 3.10.13
# 查看已安装版本
pyenv versions
四、版本切换
# 设置全局版本
pyenv global 3.12.1
# 设置项目级版本(创建 .python-version)
cd /opt/my-project
pyenv local 3.11.7
# 设置当前 Shell 临时版本
pyenv shell 3.10.13
# 查看当前版本
pyenv version
python --version
# 取消 shell 版本设置
pyenv shell --unset
五、Pyenv-virtualenv 插件
Pyenv-virtualenv 将 Pyenv 和虚拟环境管理结合,为每个项目创建隔离的 Python 环境:
# 安装插件(pyenv.run 脚本已包含)
# 如果需要手动安装:
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
# 添加到 ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc
# 创建虚拟环境
pyenv virtualenv 3.12.1 my-project-env
# 激活虚拟环境
pyenv activate my-project-env
# 或设置为项目自动激活
cd /opt/my-project
pyenv local my-project-env
# 退出虚拟环境
pyenv deactivate
# 查看所有虚拟环境
pyenv virtualenvs
# 删除虚拟环境
pyenv virtualenv-delete my-project-env
六、项目实战
# 部署 Django 项目
pyenv install 3.12.1
pyenv virtualenv 3.12.1 django-project
cd /opt/django-app
pyenv local django-project
# 安装依赖
pip install django gunicorn psycopg2-binary
pip install -r requirements.txt
# 运行
gunicorn --bind 0.0.0.0:8000 mysite.wsgi:application
七、常用命令速查
pyenv install --list # 查看可安装版本
pyenv install 3.12.1 # 安装版本
pyenv uninstall 3.10.13 # 卸载版本
pyenv versions # 查看已安装版本
pyenv version # 查看当前版本
pyenv global 3.12.1 # 设置全局版本
pyenv local 3.11.7 # 设置项目版本
pyenv shell 3.10.13 # 设置临时版本
pyenv which python # 查看 python 路径
pyenv rehash # 刷新 shims
# virtualenv 相关
pyenv virtualenv 3.12.1 env-name # 创建虚拟环境
pyenv activate env-name # 激活
pyenv deactivate # 退出
pyenv virtualenvs # 列出所有
pyenv virtualenv-delete env-name # 删除
# 更新 pyenv
cd $(pyenv root) && git pull
八、与 venv 的区别
| 工具 | 功能 | 适用场景 |
|---|---|---|
| Pyenv | 管理多个 Python 版本 | 需要不同 Python 版本 |
| venv | 创建项目级虚拟环境 | 隔离项目依赖包 |
| Pyenv + virtualenv | 版本管理 + 虚拟环境 | 完整的 Python 环境管理 |
总结
Pyenv 是在搬瓦工 VPS 上管理多个 Python 版本的最佳工具。搭配 pyenv-virtualenv 插件可以同时管理版本和虚拟环境。对于只需要单版本 Python 的项目,内置的 venv 就足够了。如果需要管理多种语言,推荐通用工具 asdf。选购搬瓦工请访问 全部方案,使用优惠码 NODESEEK2026 享 6.77% 折扣,通过 bwh81.net 进入官网。