PyCharm调用错误Python版本致包安装失败,如何指定自带版本?
PyCharm虚拟环境包安装失败问题解答
1. 是Bug还是操作遗漏?
这不是PyCharm的Bug,问题出在pip的底层调用逻辑:
- 虚拟环境里的pip并没有完全独立,它会调用基础Python安装目录里的核心网络模块。哪怕PyCharm显示当前用的是虚拟环境的解释器,实际发起网络请求安装包的进程,可能是你之前独立安装的那个Python(
C:\Users\{USERNAME}\AppData\Local\Programs\Python\Python39\python.exe)。 - 你给虚拟环境的Python加防火墙规则没用,就是因为实际走网络的是基础Python进程,所以给它加规则才生效。
2. 如何确保PyCharm用虚拟环境的Python执行所有操作?
你说的“自带的Python”其实就是项目的虚拟环境Python,按以下步骤配置即可:
第一步:确认PyCharm的解释器绑定正确
- 打开PyCharm,依次点
File > Settings > Project: [你的项目名] > Python Interpreter - 看顶部的解释器路径是不是
C:\Users\{USERNAME}\PycharmProjects\pythonProject\venv\Scripts\python.exe- 如果不是,点右上角的齿轮图标,选
Add,然后选Existing environment,找到虚拟环境的Python路径添加 - 可以勾选
Make available to all projects,方便后续项目直接用
- 如果不是,点右上角的齿轮图标,选
第二步:用虚拟环境的pip手动安装
- 打开PyCharm底部的
Terminal,先激活虚拟环境:C:\Users\{USERNAME}\PycharmProjects\pythonProject\venv\Scripts\activate.bat - 激活后终端会显示
(venv)前缀,直接输pip install scipy就行,此时pip会完全基于虚拟环境运行
补充:防火墙规则的正确配置
- 打开Windows Defender防火墙的「高级设置」
- 新建出站规则,分别给以下程序放行:
- 虚拟环境的
python.exe:C:\Users\{USERNAME}\PycharmProjects\pythonProject\venv\Scripts\python.exe - 虚拟环境的
pip.exe:C:\Users\{USERNAME}\PycharmProjects\pythonProject\venv\Scripts\pip.exe - 基础Python的
python.exe:C:\Users\{USERNAME}\AppData\Local\Programs\Python\Python39\python.exe(兜底,避免pip调用基础模块时被拦截)
- 虚拟环境的
内容的提问来源于stack exchange,提问作者bangers-and-mash
相关产品推荐
相关产品推荐

