电脑上同时运行多个Python版本:绿色版共存方案

陈默
陈默
发布时间:2026-10-28 | 8人浏览过
原创

系统介绍如何在同一台电脑上通过官方Embeddable便携包实现多个Python版本安全共存。包含独立目录规划、python._pth配置、独立pip注入、快捷调度脚本及常见踩坑排查。

在同一台电脑上同时使用多个Python版本时,最干净且不易出故障的方式是使用官方嵌入式便携包(Embeddable Package)。这种绿色方案无需向Windows注册表写入环境信息,不争夺系统环境变量PATH,每个版本都拥有完全隔离的运行时目录与第三方库,彻底杜绝了不同项目版本相互覆盖与运行冲突。

为什么选择绿色版共存架构

日常开发或测试中,经常会遇到旧项目依赖Python 3.8的特定底层包,而新工具链已经迁移至Python 3.11或3.12的情况。常规的安装包安装方式(Installer)会将可执行程序写入系统注册表,并在安装过程中提示添加环境变量PATH。一旦安装了多个版本,命令行输入python时只会命中排在PATH最前方的版本,后续版本容易被掩盖。同时,安装包还会关联.py文件的打开方式,稍有不慎就会引发执行环境错乱。

虽然社区提供了如conda、pyenv-win等版本管理工具,但它们本身具有一定的学习成本,且对系统权限、全局命令钩子有较高要求。与之相对,官方提供的Windows Embeddable绿色压缩包体积小巧、随解压随用,只要删除文件夹即彻底卸载,真正做到“零注册表污染、零系统路径劫持”。

电脑上同时运行多个Python版本:绿色版共存方案
图 1:系统安装包共存模式与绿色嵌入版隔离共存模式的机制差异

绿色版目录规划与基础环境解压

实现共存的第一步,是在本地磁盘上建立规范、结构清晰的存放目录。避免将绿色版散落在桌面或包含空格、中文的路径下(例如 C:\Program Files 或 D:\我的工具)。建议在非系统盘根目录建立专用的环境目录,例如 D:\Env\Python\。

D:\Env\Python\
├── py38\      # 存放 Python 3.8.10 绿色版全部文件
├── py310\     # 存放 Python 3.10.11 绿色版全部文件
└── py312\     # 存放 Python 3.12.7 绿色版全部文件

访问 Python 官方网站下载页面(python.org),在 Windows 版本的下载列表中,选择目标版本下的 Windows embeddable package (64-bit)。例如:

  • python-3.8.10-embed-amd64.zip
  • python-3.10.11-embed-amd64.zip
  • python-3.12.7-embed-amd64.zip

下载完成后,分别解压至规划好的目标文件夹中。此时每个目录内已具备独立完整的 python.exe,但该官方嵌入版本专为宿主程序内嵌设计,默认关闭了第三方库搜索机制,且未内置 pip 包管理器。接下来需要进行针对性修改以支持独立包管理。

电脑上同时运行多个Python版本:绿色版共存方案
图 2:绿色版 Python 部署、配置、依赖注入与快速调度的全流程步骤

核心机制:修改 python._pth 激活环境

在解压后的绿色目录中,存在一个以版本号命名的 python*._pth 文件。例如 Python 3.10 的对应文件为 python310._pth。这是官方嵌入版的核心寻址配置文件。

默认情况下,该文件的原始内容如下:

python310.zip
.

# Uncomment to run site.main() automatically
#import site

当 Python 启动时,一旦在可执行文件同级目录下发现了 ._pth 文件,就会切换至隔离寻址模式:忽略系统的环境变量 PYTHONPATH、忽略当前用户的全局 site-packages,仅以该文件中列出的相对路径构建 sys.path。因为最后一行 #import site 被注释掉了,Python 启动时不会加载标准包初始化模块 site.py,这直接导致后续安装的第三方包(存放在 Lib/site-packages 下)无法被导入。

为了将其改造成通用的绿色独立环境,使用记事本或文本编辑器打开 python310._pth,进行两处调整:

  1. 将 #import site 前面的 # 注释符号删掉,恢复 import site。
  2. 在文件中添加一行 Lib/site-packages,明确告诉解释器第三方包的存放位置。

修改后的 python310._pth 内容应为:

python310.zip
.
Lib/site-packages

# Uncomment to run site.main() automatically
import site
注意项与格式要求
文件中的路径均为相对于 python.exe 所在目录的相对路径,切勿随意写入盘符绝对路径,以免在移动该文件夹至其它机器或磁盘时导致寻址失效。保存时务必确认文件编码为 UTF-8 或 ANSI,不要修改文件后缀名。
电脑上同时运行多个Python版本:绿色版共存方案
图 3:python._pth 寻址配置修改前后对比及运行时机制解析

为各个版本独立注入 pip 包管理器

完成 ._pth 文件修改后,我们需要为每一个绿色 Python 安装专属的 pip。因为系统没有全局 pip,我们需要借助官方提供的独立引导脚本 get-pip.py。

1. 获取引导脚本

从官方源下载单文件引导脚本 get-pip.py(例如放置在 D:\Env\Python\get-pip.py)。可以通过浏览器直接另存官方链接 https://bootstrap.pypa.io/get-pip.py。

2. 执行安装命令

打开命令提示符(CMD)或 PowerShell,切换至具体的 Python 版本目录,使用当前目录下的 python.exe 执行该脚本。以 Python 3.10 为例:

cd /d D:\Env\Python\py310
.\python.exe D:\Env\Python\get-pip.py
执行输出示例
Collecting pip
  Downloading pip-24.0-py3-none-any.whl (1.8 MB)
Installing collected packages: pip
Successfully installed pip-24.0

安装完成后,当前版本目录下会自动生成两个关键组件:

  • Lib\site-packages\:用于存放后续下载的所有第三方库及 pip 本身源码。
  • Scripts\:内含当前版本专用的 pip.exe、pip3.exe、pip3.10.exe。

按照相同的方法,分别进入 D:\Env\Python\py38 和 D:\Env\Python\py312 运行 get-pip.py。这样一来,每个版本都拥有完全属于自己的 pip.exe 和第三方库仓库,安装库时绝不会交叉影响。

版本调用与日常运行策略

由于我们没有向 Windows 系统注册表和环境变量中写入任何路径,如何方便地在命令行或脚本中精确调用指定版本呢?主要有两种实践方案。

方案 A:批处理引导文件(Wrapper 脚本)

在电脑上建立一个专门存放快捷启动脚本的目录,例如 D:\Env\bin\,并将该目录添加到系统环境变量 PATH 中(仅添加此脚本目录,绝不添加任何 Python 安装目录)。在 D:\Env\bin\ 中创建对应版本的批处理文件:

文件 1:py38.bat

@echo off
"D:\Env\Python\py38\python.exe" %*

文件 2:pip38.bat

@echo off
"D:\Env\Python\py38\Scripts\pip.exe" %*

文件 3:py310.bat 与 pip310.bat

@echo off
"D:\Env\Python\py310\python.exe" %*

此时在任何命令行终端中,直接输入命令即可精确命中对应版本,不仅简洁直观,而且完全消除了歧义:

py38 -V
py310 -V
pip38 install requests
pip310 install requests==2.31.0
执行输出示例
Python 3.8.10
Python 3.10.11
Successfully installed requests-2.31.0 (in D:\Env\Python\py310\Lib\site-packages)

方案 B:在 IDE 中精准绑定解释器

若使用 VS Code 或 PyCharm 等集成开发环境,无需任何全局命令配置。直接在编辑器设置中新增解释器,浏览并定位至 D:\Env\Python\py310\python.exe 即可。编辑器会自动检测到该目录下的 Scripts\pip.exe 及对应的 Lib\site-packages,在工作区内无缝提供代码补全、调试与包安装能力。

常见问题与关键踩坑排查

故障现象 根本原因 解决办法与操作确认
双击或运行 python.exe 提示丢失 VCRUNTIME140.dll 当前系统缺少对应 Python 版本编译所需的 Visual C++ 运行库。 安装官方微软 Visual C++ Redistributable 2015-2022 合集包(X64版本),安装后无需重启即可运行。
使用 pip install 成功,但代码执行提示 ModuleNotFoundError 未按前文要求修改 python*._pth 文件,或 import site 仍处于注释状态。 打开 python*._pth,检查是否已包含 Lib/site-packages,且确保 import site 行首无 #。
安装含 C 扩展的依赖库(如早期版本的科学计算包)报错编译失败 绿色版精简了构建头文件(include)和链接静态库(libs)。 优先通过 pip install wheel 后下载预编译好的 .whl 二进制轮子文件安装,避免在本地触发源码编译。
将绿色目录移动到其它电脑后无法导入自带模块 在 ._pth 文件中误写了绝对路径(如 D:\...),目标电脑盘符不同导致路径失效。 在 ._pth 中严格使用相对路径 . 与 Lib/site-packages。
电脑上同时运行多个Python版本:绿色版共存方案
图 4:多版本绿色共存日常管理、隔离机制与便携维护规范矩阵

总结与建议

通过官方 Embeddable 便携包搭建的多版本共存方案,避开了 Windows 系统安装器在注册表与全局环境变量上的复杂交织。只要掌握好 ._pth 文件的解封与 get-pip.py 独立安装两个关键动作,就能在几分钟内搭建出一个纯净、独立且易于备份的 Python 工作环境。无论后续是继续添加 Python 3.13 预览版测试新特性,还是保留 Python 3.7 维护历史遗留脚本,整套系统都能始终保持井然有序。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表