Windows中解决Python多版本冲突应优先使用py启动器:1. py -0查看已注册版本;2. py -3.9运行脚本;3. 配置py.ini设默认版本;4. 用py -3.8 -m venv创建虚拟环境;5. 必要时才修改PATH。

在Windows命令行中运行Python脚本时,发现报错提示“ModuleNotFoundError: No module named 'requests'”,但明明用pip install装过——其实是当前python命令调用的是另一个版本的解释器,第三方库装到了别处。这时候必须快速、精准地切换到目标Python版本,而不是反复修改环境变量或重启终端。
用py启动器直接调用指定版本
Windows系统自带py.exe(Python Launcher),只要安装过多个Python版本且勾选了“Add Python to PATH”,它就能自动识别所有已注册版本。
第一步:查看当前系统已注册的所有Python版本 → 在CMD中输入 py -0
第二步:看到类似“ -V:3.12 (64-bit)\n -V:3.9 (64-bit)\n -V:3.8 (32-bit)”的输出后,即可按需调用 → 输入 py -3.9 script.py 即用3.9运行脚本
立即学习“Python免费学习笔记(深入)”;
第三步:如果只想临时切换当前会话的默认python命令行为,可加 -3 或 -2 参数 → 直接运行 py -3 就会进入Python 3.x交互环境,此时再输 exit() 退出即可
注意:py -2 在2026年已基本失效,因Python 2官方支持早已终止,多数新装系统不再注册该版本;若强行使用,可能触发找不到注册项的错误。
设置py启动器默认版本
不想每次敲 py -3.12,又不愿动系统PATH?改 py.ini 配置文件是最轻量、最安全的方案。
方法一:手动创建配置文件
在当前用户目录下新建文本文件,命名为 py.ini,路径为 %USERPROFILE%\py.ini
写入以下内容(注意中括号和等号之间不能有空格):
[defaults]
python=3.12
保存后,下次在任意位置执行 py 命令,就会默认启动3.12版本
方法二:用PowerShell一行生成(推荐)
以管理员身份打开PowerShell,执行:
@"[defaults]`npython=3.12"@ | Out-File "$env:USERPROFILE\py.ini" -Encoding utf8
这一步会自动创建带BOM的UTF-8文件,避免Windows记事本乱码导致py启动器读取失败
用虚拟环境隔离项目级Python版本
当你同时维护一个旧项目(必须用3.8)和一个新项目(依赖3.12特性),靠全局切换不够用——这时虚拟环境才是正解。
方法1:用内置venv模块创建(无需额外安装)
先确认目标Python版本路径 → 运行 py -3.8 -c "import sys; print(sys.executable)"
复制输出路径(如 C:\Users\Alice\AppData\Local\Programs\Python\Python38\python.exe),然后执行:
C:\Users\Alice\AppData\Local\Programs\Python\Python38\python.exe -m venv myproject_env
激活环境 → 进入myproject_env\Scripts目录,双击 activate.bat,或运行 myproject_env\Scripts\activate.bat
此时命令行前缀变成 (myproject_env),所有 pip install 和 python 命令都绑定到该环境的Python 3.8
方法2:用py启动器快捷创建(更省事)
直接运行:py -3.8 -m venv myenv → 自动调用3.8解释器创建环境
激活后,运行 python --version 确认显示 3.8.x,说明绑定成功
彻底更换系统默认python命令指向
只有当你确定长期只用某一个版本,并希望所有工具(如VS Code终端、Git Bash、IDE内置终端)都统一响应 python --version 时,才需要改PATH。
第一步:查清目标Python安装路径 → 运行 py -3.12 -c "import sys; print(sys.prefix)"
第二步:打开“系统属性”→“环境变量”,在“系统变量”中找到Path,点击“编辑”→“新建”
第三步:分别添加两个路径(顺序不能错):
C:\Users\Alice\AppData\Local\Programs\Python\Python312
C:\Users\Alice\AppData\Local\Programs\Python\Python312\Scripts
第四步:将这两行上移到Path列表最顶端,确保Windows优先搜索它们
第五步:关闭所有CMD/PowerShell窗口,重新打开,执行 python --version 验证是否生效


















