怎么在同一台电脑上共存Python 3.7.3与其他版本

清欢
清欢
发布时间:2026-10-11| 6人浏览过
原创

在同一台电脑上同时使用 Python 3.7.3 与其他版本(如 Python 3.10、3.11 或更高版本),关键在于实现三个层面的解耦:物理安装目录独立、命令行调度入口明确,以及第三方依赖包环境隔离。通过将 Python 3.7.3 与其他版本分别安装到独立路径,借助 Windows 系统的 Python 启动器(py 启动器)或 Unix/Linux 系统的具体版本别名精确调用,再通过虚拟环境(venv)为各个项目绑定独立的依赖目录,即可确保不同版本共存且互不干扰。

一、多版本共存的底层逻辑与路径隔离原理

在同一台计算机上安装多个 Python 解释器时,最常见的冲突通常来自两个方面:命令行执行路径的竞争和第三方依赖包的相互覆盖。默认情况下,Python 官方安装程序的可执行文件同名为 python.exe(Windows)或 python3(Linux/macOS)。操作系统在用户输入命令时,会依据环境变量 PATH 中登记的目录列表从前往后逐一匹配,排在列表前面的目录会直接遮蔽排在后面的同名程序,导致用户无法明确当前调用的具体版本。

另一个深层冲突发生在共享的 site-packages 目录。由于 Python 3.7.3 与 Python 3.10 及更高版本之间的语言语法规范、C-API 接口和字节码格式存在显著差异,如果多个版本共用同一个全局库目录,更新某一个版本的依赖包极易导致另一个版本的预编译二进制轮子(Wheel)因 ABI 不兼容而崩溃。

要实现安全、稳定的共存,必须遵循以下基本原则:

  • 目录物理隔离:将每个 Python 大小版本安装在完全独立的文件夹中,绝不覆盖已有安装。
  • 启动分发机制:不直接依赖没有版本后缀的全局 python 命令,而是通过版本特定命令(如 py -3.7 或绝对路径)显式指定解释器。
  • 运行环境沙箱化:避免在全局环境下安装业务项目所需的第三方库,通过虚拟环境将每个项目所需的包严格限定在项目内部。
怎么在同一台电脑上共存Python 3.7.3与其他版本
图 1:Python 3.7.3 与其他版本的目录隔离、启动器调度及命令行调用层面的隔离映射架构

二、安装规划与关键配置步骤

在安装阶段,通过正确的选项配置可以避免绝大多数由于环境变量混乱产生的问题。具体操作步骤如下:

1. Windows 环境下的安装要点

在 Windows 系统中,通常建议保留一个较新的版本(如 Python 3.11 或 3.12)作为全局默认解释器,而将 Python 3.7.3 作为按需调用的从属解释器:

  1. 准备安装包:前往 Python 官方档案库下载 python-3.7.3-amd64.exe 离线安装文件。
  2. 启动自定义安装:双击安装程序,必须选择 Customize installation(自定义安装),不可直接点击默认的 Install Now。
  3. 保留可选功能:在 Optional Features 界面中,确保勾选 Documentation、pip、tcl/tk and IDLE 以及 Python test suite。最下方的 py launcher 保持勾选状态。
  4. 定制高级选项:进入 Advanced Options 界面:
    • 勾选 Install for all users(为所有用户安装,此时会自动将安装路径切换为根目录规范形式)。
    • 关键选项:取消勾选“Add Python to environment variables”。这一步至关重要,取消勾选能阻止 Python 3.7.3 的目录被追加到系统全局 PATH,防止其冲刷或覆盖电脑中已存在的高版本 Python。
    • 自定义路径:将 Customize install location 修改为简洁的非中文无空格路径,例如 C:\Python373。
  5. 完成安装:点击 Install 执行安装,完成后关闭向导。
提示:若电脑中尚未安装其他高版本 Python,建议先安装现代高版本并勾选“Add Python to environment variables”,然后再安装 Python 3.7.3 且取消该勾选。这样可以让现代高版本接管全局默认入口,而 Python 3.7.3 仅通过专门启动器唤醒。

2. Linux 与 macOS 环境下的安装要点

在类 Unix 系统中,系统发行版往往依赖内置的 Python 版本(如系统的包管理器工具),严禁直接替换 /usr/bin/python3 软链接:

  • 源码编译时的隔离安装:解压 Python 3.7.3 源码后,在终端执行配置命令并指定独立的安装前缀:
    ./configure --prefix=/usr/local/python3.7.3 --enable-optimizations
  • 必须执行 altinstall:编译完成后,执行安装命令时务必使用 make altinstall 而非 make install。altinstall 会保留系统中现有的 python3 符号链接不变,只生成带版本后缀的二进制文件(如 python3.7),从而保证系统底层脚本不受影响。
怎么在同一台电脑上共存Python 3.7.3与其他版本
图 2:Python 3.7.3 与其他版本共存的关键安装配置与验证步骤流程

三、命令行分发与多版本解释器精确调用

完成安装后,不能依赖直接输入 python 命令来启动特定版本。通过以下规范方式可以精确调用目标解释器:

1. Windows 下的 Python Launcher 调度方法

Windows 平台提供的 py.exe 是解决多版本冲突最有效的工具。它会自动注册在 C:\Windows\py.exe(处于系统核心路径中),并自动扫描注册表中登记的所有 Python 版本。

在任意终端(CMD 或 PowerShell)中列出当前电脑中所有被识别的 Python 版本:

py --list

示例输出:

 -V:3.11 *        Python 3.11.9 (64-bit)
 -V:3.7           Python 3.7.3 (64-bit)

列表中带星号 * 的项目表示当前的全局默认版本。要启动特定版本,只需在 py 命令后附加版本代号:

  • 启动 Python 3.7.3 交互式终端:
    py -3.7
  • 启动 Python 3.11 交互式终端:
    py -3.11
  • 使用 Python 3.7.3 运行特定脚本:
    py -3.7 script_legacy.py

2. 类 Unix 系统下的版本后缀与绝对路径调用

在 Linux 或 macOS 系统中,若通过 make altinstall 完成安装,直接调用带版本号的二进制程序:

python3.7 --version

或直接指定编译前缀的完整绝对路径执行:

/usr/local/python3.7.3/bin/python3.7 -V

3. 校验当前解释器的执行路径

可以通过一条轻量级内联指令,打印出当前运行环境的版本号与对应二进制文件路径,验证是否准确分发:

py -3.7 -c "import sys; print('版本:', sys.version); print('路径:', sys.executable)"

示例输出:

版本: 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)]
路径: C:\Python373\python.exe
怎么在同一台电脑上共存Python 3.7.3与其他版本
图 3:全局依赖混淆与虚拟环境沙箱隔离结构对比

四、利用虚拟环境构建项目专属运行沙箱

即使在电脑中安装了 Python 3.7.3,也不应该通过全局 pip install 安装业务模块。Python 标准库自带的 venv 模块能够为具体工程创建完全独立的虚拟环境。

1. 创建指定 Python 3.7.3 的虚拟环境

打开终端并切换到项目所在的文件夹中,运行以下命令:

cd C:\Projects\my-legacy-project
py -3.7 -m venv venv37

在 Linux 或 macOS 平台下,对应命令为:

python3.7 -m venv venv37

该命令会在当前目录下创建一个名为 venv37 的子目录,其中包含:

  • 指向 Python 3.7.3 的专有可执行文件(在 Windows 下为 venv37\Scripts\python.exe)。
  • 专属于本工程的独立 site-packages 目录。
  • 环境激活脚本(activate 脚本)。

2. 激活虚拟环境

创建完成后,必须显式激活该环境:

  • Windows CMD 终端:
    venv37\Scripts\activate.bat
  • Windows PowerShell 终端:
    .\venv37\Scripts\Activate.ps1
  • Linux / macOS 终端:
    source venv37/bin/activate

激活成功后,命令行提示符前方会出现标识符 (venv37)。在激活状态下:

  • 执行 python --version,系统会自动定位并输出 Python 3.7.3。
  • 执行 pip install <package>,所有第三方包只会下载并安装到 venv37 目录内部,完全不影响全局和其他 Python 版本。

3. 退出虚拟环境

当工程开发或运行结束,需要切换到其他项目时,在终端中输入以下指令即可安全退出:

deactivate

五、常见兼容问题排查与注意事项

Python 3.7 系列官方已于 2023 年正式结束生命周期支持(EOL)。在日常使用 Python 3.7.3 与其他现代版本共存时,需要重点关注以下实际问题:

1. pip 版本过高引发的不兼容

由于现代 pip(如 pip 24.x+)已彻底移除对 Python 3.7 的兼容性支持,如果试图在 Python 3.7.3 环境下将 pip 升级到最新版本,可能会触发运行时异常。处理方案是在该虚拟环境内锁定兼容 3.7 的历史稳定版本:

python -m pip install "pip<=23.0.1"

2. 现代开源库缺失适合 3.7 的预编译二进制包

大量主流第三方库(如 NumPy、Pandas、Scipy、Requests 等)的新版本已不再构建针对 Python 3.7 的 Wheel 预编译轮子。如果直接执行 pip install pandas,pip 可能会尝试下载源码并在本地编译,若缺少 C++ 构建工具链就会报错退出。此时必须明确指定适合 Python 3.7 的历史版本号进行安装,例如:

pip install "pandas<=1.3.5" "numpy<=1.21.6"

3. 检查系统环境变量 PATH 的优先级

如果发现直接在终端输入 python 启动的不是预期的默认版本,可以通过以下命令查看系统实际的检索路径顺序:

  • Windows 平台执行:
    where python
  • Linux / macOS 平台执行:
    which -a python3

排在输出列表第一行的即为当前全局生效的解释器。若发现 C:\Python373 错误地排在了高版本之前,可打开系统的“环境变量”编辑窗口,在“系统变量”的 Path 项中将 C:\Python373 移至靠后位置,或者直接从全局 Path 中移除,保留由 py 启动器统一调度。

怎么在同一台电脑上共存Python 3.7.3与其他版本
图 4:同一电脑共存 Python 3.7.3 与其他版本的完整分层架构与操作决策总结

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。