Python 环境管理工具 pyenv-win (windows版本)

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 拥有"最高统治权":

  1. 在 Windows 搜索框输入 "环境变量" 并打开。
  2. "用户变量" 中找到 Path,双击进入。
  3. 确保以下两个路径排在列表的最顶端 (甚至要高于你之前安装的任何 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 最强大的地方!

相关推荐
x***r1512 小时前
Python 3.9.7安装教程 Windows版:解压+管理员运行+自定义路径+IDLE快捷方式指南
windows
William Dawson2 小时前
【Java Stream 流:高效、优雅的集合操作 ✨】
java·windows·python
剑穗挂着新流苏3122 小时前
208_深度学习的鲁棒性之美:暂退法(Dropout)原理与实战
开发语言·pytorch·python·深度学习
SeatuneWrite2 小时前
AI仿真人剧供应商2025推荐,高效内容创作与分发解决方案
人工智能·python
ATMQuant2 小时前
以AI量化为生:20.实时图表交易系统开发
python·量化交易·实盘交易·vnpy·k线图表
搜狐技术产品小编20232 小时前
端侧Python动态算法策略的部署与运行
开发语言·python
时光书签3 小时前
了解脚本语言
python·bash·batch命令
ID_180079054733 小时前
Python 采集转转二手商品详情:API 接口与爬虫实战全方案(2026 最新)
开发语言·爬虫·python
金刚狼883 小时前
Active和Passive两种扫描模式下,接收到的BLE广播报文的不同
windows