导入scapy.layers.inet报AnsweringMachine循环导入错误如何解决
解决方案
这个报错是Scapy包内部出现循环导入导致的,可按以下步骤排查解决:
- 首先排查是否存在命名冲突:检查你的项目目录下是否有命名为
scapy.py的自定义文件,以及和Scapy内置模块重名的文件,若有需要修改文件名,同时删除项目目录下所有__pycache__缓存文件夹后重试。 - 重装最新版Scapy:现有版本安装损坏或是旧版本存在已知循环导入bug,可在虚拟环境中执行以下命令重装:
pip uninstall -y scapy pip install --upgrade scapy
- 调整导入触发完整初始化:如果上述操作后仍报错,可修改代码的导入顺序,先触发Scapy的完整初始化再导入对应子模块:
import hashlib import time # 先导入scapy.all完成初始化 import scapy.all as scapy from scapy.layers.inet import ICMP, IP from scapy.sendrecv import sr1 # 后续原有代码保持不变即可
上述操作完成后重新运行代码即可正常执行,你的代码逻辑本身没有问题。
内容的提问来源于stack exchange,提问作者arronzhao
相关产品推荐
相关产品推荐

