标题:掌控Python多版本管理:pyenv的安装与操作
一、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环境部署
官方手册参考:https://github.com/pyenv-win/pyenv-win/blob/master/docs/installation.md#git-commands
1、创建pyenv文件夹
在D盘创建一个名为pyenv的文件夹。
2、下载源码
在cmd中进入D:\pyenv文件夹,执行以下命令:
git clone https://github.com/pyenv-win/pyenv-win.git
若下载失败,可手动从上述地址下载zip包,然后解压到D:\pyenv文件夹中。
3、配置环境变量
参考:https://github.com/pyenv-win/pyenv-win/blob/master/docs/installation.md#add-system-settings
打开系统环境变量,添加三个变量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版本了。
三、常用命令
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环境。
文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/13622.html