导入pysnmp.hlapi报ModuleNotFoundError提示pysnmp非包如何解决
问题排查与解决步骤
报错No module named 'pysnmp.hlapi'; 'pysnmp' is not a package的核心原因是Python导入模块时检索到的pysnmp并非pip安装的正式第三方库,按以下优先级排查修复:
- 清理同名文件冲突
检查运行脚本的同级目录,是否存在命名为pysnmp.py的自定义文件,或是名为pysnmp的自定义文件夹。Python导入模块时会优先读取当前工作目录下的内容,同名文件/文件夹会直接覆盖site-packages中安装的官方pysnmp库,触发该报错。将重名的文件/文件夹修改为其他不冲突的名称即可,不要和第三方库名重复。 - 对齐安装环境与运行环境
该报错也常出现在pysnmp安装的Python环境,和运行代码的Python环境不匹配的场景,比如包装在全局环境但代码跑在虚拟环境、IDE选择了错误的解释器。可以在报错脚本的最开头加入以下代码,确认当前运行环境信息:
拿到打印出的解释器路径后,调用该路径下的pip执行强制重装,保证包装在当前使用的环境中:import sys print(sys.executable) print(sys.path)# 替换为你自己打印出的Python解释器完整路径 你的Python解释器路径 -m pip install --force-reinstall pysnmp==4.4.12 - 修复损坏的安装包
如果以上两项排查都无异常,说明之前安装pysnmp时存在文件缺失、安装不完整的问题,直接执行命令卸载后重装即可:
如果设备同时存在Python2和Python3版本,将pip替换为对应版本的pip3即可。pip uninstall -y pysnmp pip install pysnmp==4.4.12
说明:pysnmp 4.4.12版本本身内置
pysnmp.hlapi模块,无需升级版本即可正常导入使用。
内容的提问来源于stack exchange,提问作者Skippy
相关产品推荐
相关产品推荐

