应使用windows原生py启动器而非直接修改path;py -3.8、py -3.12可精准调用对应版本,配合py -x.y -m venv和python -m pip确保解释器与pip严格绑定,实现彻底隔离。

直接改PATH?别碰,那是冲突源头
很多人装完两个版本后第一反应是手动调整系统环境变量 PATH 顺序,让 python.exe 指向某个版本。这方法表面有效,实则埋雷:所有终端、IDE、后台任务、甚至某些GUI工具(如VS Code的Python插件)都依赖这个全局设置,一动就全乱。更糟的是,pip 很可能绑定的是另一个版本的 site-packages,导致 import 报 ModuleNotFoundError 却查不出原因。
用 py 启动器才是Windows原生解法
Windows官方自带的 py 启动器(Python Launcher)就是为多版本设计的,无需额外工具,也不改 PATH。它默认识别 py -3.8、py -3.12 等语法,并精准调用对应解释器。
- 验证是否启用:
py -0p—— 会列出所有已注册的Python版本及路径 - 运行指定版本:
py -3.8 -c "print('ok')"或py -3.12 script.py - 设为当前会话默认:
py -3.8 -s(注意:仅对当前命令行窗口生效,不改系统级默认) - 避免直接用
python命令——它不受py控制,行为取决于PATH顺序,极易失控
虚拟环境必须绑定具体解释器路径
用 py -3.8 -m venv myenv 创建的环境,内部硬编码指向 python38.exe;而用 python -m venv 创建的,可能绑错版本,后续 pip install 就会装到错误位置。
- 创建时务必显式指定:
py -3.8 -m venv env38、py -3.12 -m venv env312 - 激活后检查解释器真实路径:
python -c "import sys; print(sys.executable)"—— 必须看到python38.exe或python312.exe,而不是泛泛的python.exe - 不要重命名原始
python.exe文件 ——venv模块依赖原始文件名,改了会导致虚拟环境无法激活
pip 安装包前先确认归属解释器
pip 不是独立程序,它只是对应 Python 解释器的一个模块入口。直接敲 pip install,实际执行的是 PATH 里第一个 pip.exe 所属的 Python 环境,和你当前用的 python 可能完全无关。
- 安全做法:统一用
python -m pip install,其中python是你刚激活的虚拟环境里的那个 - 快速验证 pip 归属:
py -3.8 -c "import pip; print(pip.__file__)"—— 输出路径应落在Python38\lib\site-packages\下 - 如果看到路径含
Python312却想装进 3.8 环境,说明你误用了全局 pip,立刻停手
py -X.Y 显式声明,再配合 -m venv 和 -m pip,两个版本就能彻底隔离——不是“勉强共存”,而是各自有主、互不越界。Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











