已安装requests库运行代码提示ModuleNotFoundError如何解决?
核心原因
这是典型的Python多环境路径不匹配问题:执行pip install requests时,包被安装到了某一个Python环境的第三方库目录,但运行代码时调用的是另一个Python解释器,该解释器的模块搜索路径不包含requests的安装位置,更新pip无法解决环境不匹配问题。
解决步骤
- 第一步:定位运行代码实际使用的Python解释器路径
打开你平时运行代码的同一个终端窗口(如果用IDE跑代码就打开IDE自带的内置终端),执行以下命令:
命令输出的绝对路径,就是当前运行代码调用的Python解释器位置,复制该路径备用。python -c "import sys; print(sys.executable)" - 第二步:调用目标解释器自带的pip安装requests
不要直接执行裸pip install命令,用刚才复制的解释器路径调用pip模块完成安装,命令格式如下:
举个例子,如果上一步输出的解释器路径是<复制的Python解释器路径> -m pip install requestsC:\Users\test\AppData\Local\Programs\Python\Python310\python.exe,对应执行的命令就是:C:\Users\test\AppData\Local\Programs\Python\Python310\python.exe -m pip install requests - 第三步:验证安装结果
保持在同一个终端窗口执行:
如果命令能正常输出版本号,再运行对应代码就不会触发模块找不到的报错。python -c "import requests; print(requests.__version__)"
常见踩坑排查
- 使用PyCharm/VSCode等IDE时,检查IDE状态栏显示的当前选中解释器,和终端查询到的解释器路径是否一致。多数IDE会为项目默认创建独立虚拟环境,在全局终端装的包不会被虚拟环境识别。
- 使用conda/venv等虚拟环境时,装包前先确认已经激活对应虚拟环境,未激活状态下执行pip会把包装到全局Python目录,虚拟环境内无法读取。
- Mac/Linux用户注意,系统默认自带Python2版本,不要混用
python/python3、pip/pip3命令,统一使用python3 -m pip install 包名的写法可以避免装错Python版本。 - 非必要不要使用
sudo pip install,该操作会因为权限问题把包装到系统级目录,很容易出现当前用户调用的解释器无法读取包的问题。
内容的提问来源于stack exchange,提问作者Bryson Lichtenberg
相关产品推荐
相关产品推荐

