在使用python环境开发时,相信肯定被使用版本所烦恼,在用第三方库时依赖兼容的python版本不一样,有没有一个能同时安装多个python并能自由切换的工具呢,那就是pyenv
,让你可以轻松切换多个Python 版本。
pyenv是什么
pyenv 让你可以轻松切换多个 Python 版本。它简单、低调,并遵循 UNIX 统一规范。

pyenv功能特点
- 允许你按用户更改全局 Python 版本。
- 支持每个项目指定 Python 版本。
- 允许你通过环境变量覆盖 Python 版本。
- 可以同时从多个Python版本中查找命令,这对于用 tox 跨版本测试很有帮助。
不同,pyenv与 pythonbrew 和 pythonz 不同
依赖 Python 本身。pyenv 完全由 shell 脚本编写,无需 Python 启动。
需要加载到你的 shell。pyenv 采用 shim 机制,只需将目录加入 PATH
。
管理 virtualenv。你可以自己创建 virtualenv,或用 pyenv-virtualenv 自动化。
使用文档地址:
pyenv安装
Linux/Unix/MacOS
如果你已安装 Homebrew,MacOS的 Homebrew 选项同样适用。
1.自动安装器(推荐)
curl -fsSL https://pyenv.run | bash
MacOS
上面Linux部分的选项也可以使用,但建议基本使用Homebrew
。
Homebrew(macOS 下)
更新 homebrew 并安装 pyenv:
brew update
brew install pyenv
Windows
yenv 官方不支持 Windows,且在 Windows 下无法运行(除非在 WSL)。 此外,即使在 WSL,安装的 Python 也是 Linux 版而非原生 Windows 版, 因此无法获得 Windows 特有功能。
在 Windows 下,推荐使用 pyenv-win
它可安装原生 Windows Python。
PowerShell
下安装pyenv-win
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
2.重新打开PowerShell
执行 pyenv --version 输入已安装的pyenv版本号
执行 pyenv install -l检测可安装的版本Python版本列表
执行 pyenv install 安装指定Python版本
执行 pyenv global 设置 pythone全局版本

pyenv-win 命令行大全
- pyenv local 设置或显示特定应用程序的本地Python版本
- pyenv latest 打印带有指定前缀的最新已安装或已知版本
- pyenv global 设置或显示全局Python版本
- pyenv shell 设置或显示特定shell的Python版本
- pyenv install 安装一个或多个Python版本
- pyenv uninstall 卸载一个或多个Python版本
- pyenv update 更新缓存的版本数据库
- pyenv rehash 重新生成pyenv shims(切换Python版本后运行此命令)
- pyenv vname 显示当前Python版本
- pyenv version 显示当前Python版本及其来源
- pyenv version-name 显示当前Python版本
- pyenv versions 列出pyenv可用的所有Python版本
- pyenv exec 运行可执行文件(首先配置PATH,使所选Python版本的`bin'目录位于最前端)
- pyenv which 显示可执行文件的完整路径
- pyenv whence 列出包含指定可执行文件的所有Python版本
总结:pyenv
是一个用于管理多个 Python 版本的工具,特别适合在开发环境中使用。它允许用户在同一台机器上轻松切换不同版本的 Python,而不会影响系统默认的 Python 环境。以下是 pyenv
的主要功能和使用场景:
主要功能
- 多版本管理 :
pyenv
可以安装和管理多个 Python 版本,包括 CPython、PyPy、Anaconda 等。用户可以根据项目需求选择特定的 Python 版本。 - 版本切换:通过简单的命令,用户可以在全局、项目或当前 shell 会话中切换 Python 版本。
- 虚拟环境支持 :
pyenv
可以与pyenv-virtualenv
插件结合使用,创建和管理独立的 Python 虚拟环境,避免依赖冲突。 - 自动版本选择 :通过
.python-version
文件,pyenv
可以自动为项目选择正确的 Python 版本。
安装步骤
-
安装依赖 :在 Linux 或 macOS 上,需要安装一些依赖工具,如
git
和curl
。bashsudo 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
:使用以下命令安装pyenv
:bashcurl https://pyenv.run | bash
-
配置环境变量 :将
pyenv
添加到 shell 的配置文件中(如~/.bashrc
或~/.zshrc
):bashecho 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init --path)"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc
常用命令
-
安装 Python 版本 :
bashpyenv install 3.9.7
-
查看已安装的 Python 版本 :
bashpyenv versions
-
设置全局 Python 版本 :
bashpyenv global 3.9.7
-
设置项目 Python 版本 :
bashpyenv local 3.8.12
-
创建虚拟环境 (需安装
pyenv-virtualenv
):bashpyenv virtualenv 3.9.7 myenv
-
激活虚拟环境 :
bashpyenv activate myenv
应用场景
- 多项目开发 :在同时开发多个项目时,每个项目可能需要不同的 Python 版本或依赖库。
pyenv
可以帮助开发者快速切换环境,避免冲突。 - 测试兼容性 :开发者可以使用
pyenv
安装多个 Python 版本,测试代码在不同版本下的兼容性。 - 教学与学习 :在学习 Python 时,
pyenv
可以方便地安装和切换不同版本,帮助理解 Python 的版本差异。
插件扩展
pyenv-virtualenv
:用于管理虚拟环境,支持创建、删除和切换虚拟环境。pyenv-update
:用于更新pyenv
及其插件到最新版本。pyenv-which-ext
:用于查找特定命令的路径,帮助调试环境问题。
通过 pyenv
,开发者可以更高效地管理 Python 环境,提升开发体验。