Windows 上多版本 Python:用 py、venv 和绝对路径
Python 3.11 与 3.12 并存,每个应用独立 venv,固定解释器,不依赖 PATH 或商店别名。
测试环境Standard / Datacenter · 版本号 26100.33650 · x64
E1- 版本号
- 26100.33650
- 版本
- Standard / Datacenter
- 架构
- x64
- 支持
- 文档(E1)
- 证据
- E1官方文档
- 核验日期
- 2026-10-29
- 页面类型
- 方法
用 py launcher 选版本,用每应用 venv 固定依赖:
py -0ppy -3.11 -m venv C:\apps\api-a\.venvC:\apps\api-a\.venv\Scripts\python.exe -m pip install -r requirements.txtvenv 里的 python.exe 才是生产选择器。不要依赖 PATH 的 python,也不要把应用依赖装到全局。
py -0ppy -3.11 --versionpy -3.12 --versionwhere.exe pythonpython 打开 Microsoft Store,就禁用 App Execution Alias,或用 py/绝对路径。商店别名是“Python 不对”的常见来源。
每应用 venv
Section titled “每应用 venv”py -3.11 -m venv C:\apps\api-a\.venvC:\apps\api-a\.venv\Scripts\python.exe -m pip install --upgrade pipC:\apps\api-a\.venv\Scripts\python.exe -m pip install -r C:\apps\api-a\requirements.txtvenv 记录基础解释器。重建比调试混在一起的全局 site-packages 便宜。
服务用绝对 venv python:
C:\apps\api-a\.venv\Scripts\python.exe -m waitress --listen=127.0.0.1:8000 app:appC:\apps\api-a\.venv\Scripts\python.exe -c "import sys; print(sys.executable); print(sys.version)"C:\apps\api-a\.venv\Scripts\python.exe -m pip listsys.executable 应指向应用 venv,不是 C:\Python311\python.exe。
- 新 Python 装在旧版旁边。
- 给应用建新 venv(
py -3.12 -m venv .venv312)。 - 按 lock/requirements 装依赖,跑测试。
- 服务路径切到新 venv。
- 回滚不需要后再删旧 venv。
E1。实验室没有装多版本 Python 或跑 WSGI 服务;命令是选择器模式,在 Server 2025 上验证。