Python中pyenv安装及使用的实现步骤

 更新时间:2025年07月18日 10:36:51   作者:源图客  
pyenv是一个高效的Python版本管理工具,支持多版本共存和灵活切换,下面就来介绍一下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 环境。

到此这篇关于Python中pyenv安装及使用的实现步骤的文章就介绍到这了,更多相关pyenv安装及使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pandas中聚合函数agg的具体用法

    pandas中聚合函数agg的具体用法

    Pandas中的的agg()函数为aggregate的缩写.总数、合计、聚合的意思.是一个功能非常强大的函数.在Pandas中可以利用agg()对Series、DataFrame以及groupby()后的结果进行聚合操作,下面这篇文章主要给大家介绍了关于pandas中聚合函数agg的具体用法,需要的朋友可以参考下
    2022-07-07
  • Python中如何使用if语句处理列表实例代码

    Python中如何使用if语句处理列表实例代码

    这篇文章主要给大家介绍了关于在Python中如何使用if语句处理列表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • Python内置模块hashlib、hmac与uuid用法分析

    Python内置模块hashlib、hmac与uuid用法分析

    这篇文章主要介绍了Python内置模块hashlib、hmac与uuid用法,结合实例形式较为详细的分析了hashlib、hmac与uuid模块的概念、功能及简单使用方法,需要的朋友可以参考下
    2018-02-02
  • Python列表(list)所有元素的同一操作解析

    Python列表(list)所有元素的同一操作解析

    这篇文章主要介绍了Python列表(list)所有元素的同一操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 解决Pycharm 中遇到Unresolved reference ''sklearn''的问题

    解决Pycharm 中遇到Unresolved reference ''sklearn''的问题

    这篇文章主要介绍了解决Pycharm 中遇到Unresolved reference 'sklearn'的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 用python简单实现mysql数据同步到ElasticSearch的教程

    用python简单实现mysql数据同步到ElasticSearch的教程

    今天小编就为大家分享一篇用python简单实现mysql数据同步到ElasticSearch的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 使用Python和Pillow库开发图片转GIF工具的完整流程

    使用Python和Pillow库开发图片转GIF工具的完整流程

    这篇文章主要介绍了使用 Python 和 Pillow 库开发图片转 GIF 工具的完整流程,工具支持多格式图片输入、自定义帧率、统一图片尺寸及设置循环次数等核心功能,采用命令行参数解析实现便捷操作,需要的朋友可以参考下
    2025-10-10
  • python正则表达式re之compile函数解析

    python正则表达式re之compile函数解析

    这篇文章主要介绍了python正则表达式re之compile函数解析,介绍了其定义,匹配模式等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Python对列表排序的方法实例分析

    Python对列表排序的方法实例分析

    这篇文章主要介绍了Python对列表排序的方法,实例分析了Python列表排序函数的相关使用技巧,非常简单实用,需要的朋友可以参考下
    2015-05-05
  • 详解Python中如何将数据存储为json格式的文件

    详解Python中如何将数据存储为json格式的文件

    这篇文章主要介绍了详解Python中如何将数据存储为json格式的文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论