Python 的环境管理通常分为两个维度:版本管理(切换 Python 3.10, 3.12 等)和 虚拟环境管理(隔离不同项目的第三方包)。
我想要一个和 nvm 逻辑一模一样的工具,pyenv 是首选。它专注于 Python 版本的安装和切换。
-
核心功能:安装多个 Python 版本,并通过一行命令全局或针对某个目录切换版本。
-
常用命令:
pyenv install 3.11.0:安装指定版本。 pyenv global 3.11.0:设置全局默认版本。 pyenv local 3.10.0:当你在某个文件夹下,自动切换到该版本。 -
适用场景:纯粹的 Python 版本管理,不涉及项目依赖管理。
原生的 pyenv 是专门为 Unix/Linux/macOS 设计的(基于 Shell 脚本)。在 Windows 环境下,此处需要使用它的移植版:pyenv-win
Windows 安装
1. 执行脚本前的准备
如果这是你第一次在 PowerShell 执行下载脚本,可能会遇到权限拦截。建议在运行你那行命令之前,先执行以下语句:
powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
为什么要这么做? > Windows 默认禁止运行未签名的本地脚本。这行命令会允许你运行自己下载的脚本,仅针对当前用户,比较安全。
2. 执行安装命令
powershell
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" | [System.IO.File]::WriteAllLines("$HOME\install-pyenv-win.ps1", $input); & "$HOME\install-pyenv-win.ps1"
3. 环境变量检查
脚本跑完后,它通常会尝试自动修改环境变量。但 pyenv-win 在 Windows 上最容易出问题的地方就是路径优先级。
请按照以下步骤检查,确保 pyenv 拥有"最高统治权":
- 在 Windows 搜索框输入 "环境变量" 并打开。
- 在 "用户变量" 中找到
Path,双击进入。 - 确保以下两个路径排在列表的最顶端 (甚至要高于你之前安装的任何 Python 路径):
%USERPROFILE%\.pyenv\pyenv-win\bin%USERPROFILE%\.pyenv\pyenv-win\shims
4. 验证安装
关闭所有当前的 PowerShell/CMD 窗口,重新打开一个,然后输入:
powershell
pyenv --version
如果返回版本号,安装成功!
5. 记录执行过程
bash
PS C:\Users\admin> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
PS C:\Users\admin> Invoke-WebRequest -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "$HOME\install-pyenv-win.ps1"
PS C:\Users\admin> & "$HOME\install-pyenv-win.ps1"
目录: C:\Users\admin
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2026/4/3 22:43 .pyenv
pyenv-win is successfully installed. You may need to close and reopen your terminal before using it.
安装python版本
1. 安装 Python 3.13
请在终端输入以下命令:
pyenv install 3.13.0
记录执行过程
bash
PS C:\Users\admin> pyenv --version
pyenv 3.1.1
PS C:\Users\admin> pyenv install 3.13.0 # 安装3.13.0版本
:: [Info] :: Mirror: https://www.python.org/ftp/python
:: [Info] :: Mirror: https://downloads.python.org/pypy/versions.json
:: [Info] :: Mirror: https://api.github.com/repos/oracle/graalpython/releases
:: [Downloading] :: 3.13.0 ...
:: [Downloading] :: From https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe
:: [Downloading] :: To C:\Users\admin\.pyenv\pyenv-win\install_cache\python-3.13.0-amd64.exe
:: [Installing] :: 3.13.0 ...
:: [Info] :: completed! 3.13.0
PS C:\Users\admin>
PS C:\Users\admin> python --version
No global/local python version has been set yet. Please set the global/local version by typing:
pyenv global 3.7.4
pyenv local 3.7.4
PS C:\Users\admin>
2. 激活Python 3.13
请在终端输入以下命令:
bash
# 将 3.13.0 设置为全局默认版本
pyenv global 3.13.0
# 刷新状态
pyenv rehash
执行记录
bash
PS C:\Users\admin> python --version
No global/local python version has been set yet. Please set the global/local version by typing:
pyenv global 3.7.4
pyenv local 3.7.4
PS C:\Users\admin>
PS C:\Users\admin> pyenv global 3.13.0
PS C:\Users\admin>
PS C:\Users\admin> pyenv rehash
PS C:\Users\admin>
PS C:\Users\admin> python --version
Python 3.13.0
PS C:\Users\admin>
PS C:\Users\admin>
注意事项
如果你以后有一个旧项目需要用 Python 3.10,而你刚好也用 pyenv install 3.10.x 装好了,你可以进入那个项目文件夹执行:
pyenv local 3.10.x
这样当你在这个文件夹里运行 python 时,它是 3.10;一旦离开这个文件夹,它又变回全局默认的 3.13.0 了。这就是 pyenv 最强大的地方!