PyCharm配置项目虚拟环境为解释器后运行报错找不到urllib3模块如何解决
问题原因
你在终端直接执行pytest xxx.py时默认调用的是全局Python环境/其他非目标虚拟环境的pytest程序,和PyCharm中配置的项目虚拟环境是互相独立的上下文,包安装情况不互通,所以会出现PyCharm包列表中能看到urllib3、但终端运行找不到模块的问题。
修复方案
可根据使用场景选择任意一种方案:
- 方案1:手动激活虚拟环境后运行命令
不同系统的虚拟环境激活命令如下,替换命令中的venv_dir为你项目内虚拟环境的实际路径:- Windows(cmd环境):
venv_dir\Scripts\activate.bat - Windows(PowerShell环境):
venv_dir\Scripts\Activate.ps1 - macOS/Linux环境:
source venv_dir/bin/activate
激活成功后终端提示符前缀会显示当前虚拟环境的名称,此时再执行pytest xxx.py即可正常读取虚拟环境内安装的依赖包。
- Windows(cmd环境):
- 方案2:直接调用虚拟环境内的pytest可执行文件
无需提前激活环境,指定虚拟环境内的pytest路径运行即可,适合临时执行单次命令的场景:- Windows:
venv_dir\Scripts\pytest.exe xxx.py - macOS/Linux:
venv_dir/bin/pytest xxx.py
- Windows:
- 方案3:配置PyCharm内置终端自动激活虚拟环境
如果你习惯用PyCharm自带的终端执行命令,可以开启自动激活配置:打开PyCharm设置 → 工具 → 终端,勾选「激活虚拟环境」选项,后续打开项目内置终端时会自动加载对应虚拟环境,直接执行pytest命令即可生效。
验证方式
操作完成后可执行以下命令确认环境是否匹配:
- 运行
pip list,检查返回的包列表中是否存在urllib3,和PyCharm中显示的依赖列表一致即代表环境生效 - macOS/Linux可执行
which pytest、Windows可执行where pytest,确认返回的pytest路径指向你项目的虚拟环境目录即可
内容的提问来源于stack exchange,提问作者Qianyu
相关产品推荐
相关产品推荐

