目录
一、pyenv概述
pyenv是一个Python版本管理工具,允许用户在同一台机器上安装并切换多个Python版本。它通过修改环境变量实现版本隔离,适用于开发、测试或兼容性需求。
官方地址:https://github.com/pyenv/pyenv
Windows版本地址:https://github.com/pyenv-win/pyenv-win
核心功能
- 多版本共存:支持安装Python 2.x、3.x等多个版本,包括CPython、PyPy、Anaconda等发行版。
- 版本切换:全局或按目录指定Python版本,避免系统默认版本冲突。
- 虚拟环境集成:结合
pyenv-virtualenv
插件可创建独立的虚拟环境。
工作原理
pyenv通过将选定版本的Python路径插入PATH
环境变量最前端,覆盖系统默认路径。版本安装位置通常位于~/.pyenv/versions/
目录下。
典型使用场景
- 开发需兼容不同Python版本的项目。
- 快速测试代码在新版本Python中的行为。
- 避免因系统Python升级导致的依赖问题。
常用命令示例
# 安装指定Python版本
pyenv install 3.9.12
# 列出所有已安装版本
pyenv versions
# 设置全局默认版本
pyenv global 3.9.12
# 为当前目录设置局部版本
pyenv local 3.8.10
与类似工具对比
- virtualenv:仅管理虚拟环境,不解决多版本安装问题。
- conda:侧重科学计算生态,版本管理是其子功能。
- pyenv:专注轻量级版本切换,适合纯Python开发。
pyenv的模块化设计使其成为处理多版本Python需求的常用选择,尤其适合需要频繁切换版本的开发者。
二、pyenv部署
Windows环境部署
1、创建pyenv文件夹
打开D盘创建pyenv文件夹
2、下载源码
cmd进入D:\pyenv文件夹,执行如下命令
git clone https://github.com/pyenv-win/pyenv-win.git
如果下载失败,则手动从上述地址下载zip包,然后解压到 D:\pyenv文件夹中
3、配置环境变量
打开系统环境变量,添加一下三个变量PYENV,PYENV_HOME , PYENV_ROOT ,内容都为D:\pyenv\pyenv-win
如:
在Path中添加如下内容
%PYENV_ROOT%\pyenv-win\bin
和
%PYENV_ROOT%\pyenv-win\shims
保存并退出
4、验证是否安装成功
打开cmd,执行
pyenv --version
如上已安装成功
输入以下命令,可查看当前激活的Python使用版本
pyenv version
5、安装其它Python版本
安装Python版本:
pyenv install 3.12
要切换到 “3.12” Python 环境,设置全局Python版本:
pyenv global 3.12
查看当前版本
pyenv version
查看可用的Python版本:
pyenv versions
通过以上步骤,你就可以在Windows上使用Pyenv来管理多个Python版本了。
6、Python与Pyenv版本切换
如果电脑上之前已经装过了Python,不是通过pyenv控制的,pip默认使用环境变量中考前的版本,自行调整优先级即可
如果不想调整优先级,默认是Python安装的,又想用pyenv,则在pip前面加上pyenv exec 即可(不建议)
如:pyenv exec pip install poetry
Ubuntu环境部署
1、安装依赖项
sudo apt update
sudo apt install -y 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
2、源码下载,上传并解压
https://github.com/pyenv/pyenv
unzip pyenv-master.zip
mv pyenv-master pyenv
3、配置环境变量
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
exec $SHELL
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL
4、验证是否安装成功
打开cmd,执行
pyenv --version
如上已安装成功
5、安装其它Python版本
查看可以安装的版本
pyenv install --list
安装Python版本:
pyenv install 3.11
设置全局Python版本:
pyenv global 3.11
查看当前版本
pyenv version
查看可用的Python版本:
pyenv versions
输入
python
通过以上步骤,你就可以在Linux上使用Pyenv来管理多个Python版本了。
6、Python与Pyenv版本切换
如果电脑上之前已经装过了Python,不是通过pyenv控制的,pip默认使用环境变量中考前的版本,自行调整优先级即可
如果不想调整优先级,默认是Python安装的,又想用pyenv,则在pip前面加上pyenv exec 即可(不建议)
如:pyenv exec pip install poetry
三、常用命令
1. 命令概览
pyenv 是一个用于管理多个 Python 版本的工具,提供了以下核心命令:
命令 | 功能描述 |
---|---|
local | 设置或显示项目特定的 Python 版本 |
latest | 打印与给定前缀匹配的最新已安装或已知版本 |
global | 设置或显示全局 Python 版本 |
shell | 设置或显示当前 shell 会话特定的 Python 版本 |
install | 安装一个或多个 Python 版本 |
uninstall | 卸载一个或多个 Python 版本 |
update | 更新缓存的版本数据库 |
rehash | 重新生成 pyenv shims(在切换 Python 版本后运行此命令) |
vname | 显示当前 Python 版本 |
version | 显示当前 Python 版本及其来源 |
version-name | 显示当前 Python 版本 |
versions | 列出 pyenv 可用的所有 Python 版本 |
exec | 运行可执行文件,同时确保所选 Python 版本的 bin 目录位于 PATH 前面 |
which | 显示可执行文件的完整路径 |
whence | 列出包含给定可执行文件的所有 Python 版本 |
2. 常用命令示例
安装 Python 版本
# 查看所有可用的 Python 版本
pyenv install --list
# 安装特定版本的 Python
pyenv install 3.9.7
# 安装多个 Python 版本
pyenv install 3.8.12 3.9.7 3.10.0
设置 Python 版本
# 设置全局 Python 版本
pyenv global 3.9.7
# 设置项目局部 Python 版本(会在当前目录创建 .python-version 文件)
pyenv local 3.8.12
# 设置当前 shell 会话的 Python 版本
pyenv shell 3.10.0
查看 Python 版本
# 查看当前使用的 Python 版本
pyenv version
# 查看所有可用的 Python 版本
pyenv versions
# 查看特定命令对应的路径
pyenv which python
pyenv which pip
卸载 Python 版本
# 卸载指定的 Python 版本
pyenv uninstall 3.8.12
其他实用命令
# 更新 pyenv 已知的 Python 版本列表
pyenv update
# 在切换 Python 版本后,重新生成 shims
pyenv rehash
# 查找包含特定可执行文件的 Python 版本
pyenv whence pip
3. 使用技巧
使用 exec
命令
pyenv exec
用于执行特定 Python 版本环境下的命令,确保使用正确的 Python 环境:
# 使用 pyenv 管理的 Python 版本执行脚本
pyenv exec python my_script.py
# 使用 pyenv 管理的 pip 安装包
pyenv exec pip install requests
结合 .python-version
文件
在项目根目录创建 .python-version
文件,可以自动切换到指定的 Python 版本:
# 手动创建文件并指定版本
echo "3.9.7" > .python-version
# 或者使用 pyenv local 命令自动创建
pyenv local 3.9.7
4. 注意事项
- shims 机制:pyenv 通过在
PATH
前添加 shims 目录来实现版本切换,因此在安装新的 Python 版本或修改环境后,需要运行pyenv rehash
。 - 环境变量:如果遇到版本切换不生效的问题,检查
PATH
环境变量是否正确配置,确保~/.pyenv/bin
和~/.pyenv/shims
在PATH
中。 - 更新 pyenv:定期运行
git -C ~/.pyenv pull
更新 pyenv 本身。
掌握这些命令后,你可以轻松在不同 Python 版本之间切换,为不同项目配置独立的 Python 环境。