背景
在将旧服务器上的 Python 3.6.6 + Flask 项目迁移到新环境时,往往面临版本兼容性问题。新服务器通常预装了较新的 Python 版本(如 3.11.7),而旧项目依赖特定旧版本。这导致我们需要在同一台 Windows 10 企业版电脑上同时管理多个 Python 版本。
安装前准备:确认架构
安装的第一步是确定目标 Python 的架构(32 位还是 64 位)。开发人员留下的安装包可能包含两个版本:python-3.6.6.exe(32 位)和 python-3.6.6-amd64.exe(64 位)。
如果无法从文件名判断,务必登录原服务器,在 CMD 中输入 python --version 或检查注册表路径来确认旧环境的具体架构。我最初因未核实直接安装了 32 位版本,导致后续 Apache 部署 Flask 时报错,不得不卸载重装。最终确认老服务器为 amd64 架构,因此新机器必须选择对应的 64 位安装包。
执行安装
- 右键点击安装包,选择'以管理员身份运行'。
- 在安装过程中,建议勾选'Add Python to PATH'(虽然本文主要讲多版本共存时的手动配置,但首次安装勾选有助于基础环境识别)。
- 等待安装完成。
验证安装
安装完成后,不要急于使用。首先检查安装目录是否存在对应版本的文件夹。其次,打开命令行工具,输入以下命令查看当前默认指向的版本:
python --version
如果此时显示的是 3.11 而不是刚安装的 3.6,说明环境变量尚未调整,这是正常现象。
核心难点:环境变量配置
当系统中存在多个 Python 版本时,CMD 输入 python 到底调用哪一个,取决于系统环境变量中 Path 变量的顺序。谁在前,谁优先。
1. 排查冲突
很多时候,系统管理员会预先部署 Anaconda 或其他集成环境。例如,若超管使用 Anaconda 部署了 Python 3.11,那么 Path 中 Anaconda 的路径通常会排在前面,导致你安装的独立 Python 3.6 无法被直接调用。
2. 调整顺序
进入系统设置 -> 编辑环境变量。找到用户变量或系统变量中的 Path,点击编辑。将新安装的 Python 3.6 的安装路径(以及 Scripts 路径)移动到列表上方,确保其优先级高于 Python 3.11 或 Anaconda 的路径。
调整后,重新打开一个新的 CMD 窗口(旧窗口不生效),再次输入 python,应能正确显示 3.6.6。
别忘了配置 pip
安装完 Python 后,经常遇到 pip 命令不可用的情况。这是因为 Python 安装时未自动将 pip 加入环境变量,或者版本间隔离导致。
建议在新环境中单独验证 pip 是否可用:
python -m pip --version
如果报错,可能需要手动下载 get-pip.py 进行安装,或在安装 Python 时确保勾选相关选项。
多版本切换与管理
如果后续需求变更,需要切换回 Python 3.11,无需卸载重装。只需回到环境变量设置中,将对应版本的 Path 上移或下移即可。多个 Python 版本在文件系统中互不干扰,仅在命令行入口上存在竞争关系。
避坑总结
- 架构一致性:迁移项目时,新旧服务器的 Python 架构(32/64 位)必须一致,否则会导致底层库加载失败。
- 权限问题:安装过程尽量使用管理员权限,避免写入权限不足。
- 环境变量优先级:这是最容易出错的地方,务必记住'路径靠前者优先'。
- 清理重装:如果配置混乱,Python 卸载相对干净,直接卸载重装往往是最高效的解决方案。
通过以上步骤,即可在保持现有开发环境稳定的前提下,成功引入旧项目所需的 Python 版本。


