仅在导入特定函数时出现循环导入错误



我正在使用scapy 2.4.5,并试图使用UDP类。

from scapy.all import UDP

运行没有问题,但我不能使用IDE去声明。如果我点击它,它显示没有找到声明。但是如果我使用

from scapy.layers.inet import UDP
然后我可以转到声明并查看类和相关代码。但是当我运行它时,我得到以下错误:
ImportError: cannot import name 'AnsweringMachine' from partially initialized module 'scapy.ansmachine' (most likely due to a circular import) 

没有其他的导入,这是非常基本的

from scapy.layers.inet import UDP

if __name__ == "__main__":

new_udp_packet = UDP()
print(new_udp_packet)

预期输出

WARNING: No IPv4 address found on en5 !
WARNING: No IPv4 address found on ap1 !
WARNING: more No IPv4 address found on awdl0 !
WARNING: Calling str(pkt) on Python 3 makes no sense!
b'x005x005x00x08x00x00'

修复方法:

import scapy.all  # makes sure everything gets imported in the right order
from scapy.layers.inet import UDP

当然,您必须确保scapy.all导入在文件中保持在第一位。

但是,我建议您查看可以通过scapy.all文件解析导入的IDE…:)

由于scapy.layers.all(这是什么scapy.all进口)动态选择层模块通过scapy.conf.load_layers加载,它可以不幸地不与代码完成工作,不评估代码。

相关内容

  • 没有找到相关文章

最新更新