跳转到内容

Windows 上多版本 Python:用 py、venv 和绝对路径

核验于 1 分钟阅读

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 -0p
py -3.11 -m venv C:\apps\api-a\.venv
C:\apps\api-a\.venv\Scripts\python.exe -m pip install -r requirements.txt

venv 里的 python.exe 才是生产选择器。不要依赖 PATH 的 python,也不要把应用依赖装到全局。

终端窗口
py -0p
py -3.11 --version
py -3.12 --version
where.exe python

python 打开 Microsoft Store,就禁用 App Execution Alias,或用 py/绝对路径。商店别名是“Python 不对”的常见来源。

终端窗口
py -3.11 -m venv C:\apps\api-a\.venv
C:\apps\api-a\.venv\Scripts\python.exe -m pip install --upgrade pip
C:\apps\api-a\.venv\Scripts\python.exe -m pip install -r C:\apps\api-a\requirements.txt

venv 记录基础解释器。重建比调试混在一起的全局 site-packages 便宜。

服务用绝对 venv python:

C:\apps\api-a\.venv\Scripts\python.exe -m waitress --listen=127.0.0.1:8000 app:app
终端窗口
C:\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 list

sys.executable 应指向应用 venv,不是 C:\Python311\python.exe。

  1. 新 Python 装在旧版旁边。
  2. 给应用建新 venv(py -3.12 -m venv .venv312)。
  3. 按 lock/requirements 装依赖,跑测试。
  4. 服务路径切到新 venv。
  5. 回滚不需要后再删旧 venv。

E1。实验室没有装多版本 Python 或跑 WSGI 服务;命令是选择器模式,在 Server 2025 上验证。

来源