Python3.8 Jupyter环境pip安装wget成功却导入报ModuleNotFoundError问题问询
问题成因
- Python环境不匹配:这是最高发的核心原因。Jupyter Notebook当前运行内核对应的Python解释器,和
!pip命令关联的pip所属的Python解释器不属于同一个环境。执行!pip install wget时包被安装到了其他Python的site-packages目录下,当前内核的Python模块检索路径中没有该安装位置,因此导入失败。 - 模块安装异常:你的安装日志中提示缺少wheel包,使用了legacy模式的setup.py安装,可能存在隐性安装错误,尽管提示安装成功,但实际模块文件存在缺失或不完整的问题。
- 内核缓存未刷新:部分场景下安装新包后,Jupyter内核的模块检索路径缓存没有实时更新,导致无法识别刚完成安装的包。
可行解决方法
方法1:使用当前内核对应的pip安装
直接调用当前Jupyter内核绑定的Python解释器执行pip安装,确保包被安装到当前环境中,替换原有!pip install wget为以下代码:
import sys !{sys.executable} -m pip install wget
安装完成后再执行import wget即可。
方法2:重启Jupyter内核
如果是缓存未更新导致的问题,点击Jupyter界面顶部的「Kernel」-「Restart」,重启内核后重新尝试导入即可。
方法3:修复安装流程
先安装wheel包再强制重装wget,避免legacy安装导致的文件损坏问题:
import sys !{sys.executable} -m pip install wheel wget --force-reinstall
安装完成后重启内核再测试导入。
方法4:手动同步检索路径
先执行以下代码查看当前Python的模块检索路径:
import sys print(sys.path)
再执行以下代码查看pip安装的wget的实际存储位置:
!pip show wget
核对输出的wget的Location路径是否在sys.path的列表中,如果不在可以手动添加路径:
import sys # 引号内替换为你查到的wget的Location路径 sys.path.append("C:\\Users\\mahmu\\AppData\\Local\\Programs\\Python\\Python38\\Lib\\site-packages")
添加完成后再导入wget即可。
内容的提问来源于stack exchange,提问作者Mahmudul Hasan Suzan
相关产品推荐
相关产品推荐

