仅在导入特定功能时循环导入错误
Circular import error only when importing specific function
我正在使用 scapy 2.4.5 并尝试使用 UDP class。
from scapy.all import UDP
运行没有问题,但是我不能用IDE去申报。如果我点击它显示没有找到声明。但是,如果我使用
from scapy.layers.inet import UDP
然后我可以转到声明并查看 class 和相关代码。但是当我 运行 它时,我收到以下错误。
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'\x005\x005\x00\x08\x00\x00'
简单的解决方法:
import scapy.all # makes sure everything gets imported in the right order
from scapy.layers.inet import UDP
当然,您随后必须确保 scapy.all
导入在文件中保持在最前面。
但是,我建议研究一个 IDE,它可以通过 scapy.all
文件解析导入...:)
由于 scapy.layers.all
(这是 scapy.all
导入的内容)通过 scapy.conf.load_layers
动态选择要加载的层模块,不幸的是,它不能与不评估代码的代码完成一起使用.
我正在使用 scapy 2.4.5 并尝试使用 UDP class。
from scapy.all import UDP
运行没有问题,但是我不能用IDE去申报。如果我点击它显示没有找到声明。但是,如果我使用
from scapy.layers.inet import UDP
然后我可以转到声明并查看 class 和相关代码。但是当我 运行 它时,我收到以下错误。
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'\x005\x005\x00\x08\x00\x00'
简单的解决方法:
import scapy.all # makes sure everything gets imported in the right order
from scapy.layers.inet import UDP
当然,您随后必须确保 scapy.all
导入在文件中保持在最前面。
但是,我建议研究一个 IDE,它可以通过 scapy.all
文件解析导入...:)
由于 scapy.layers.all
(这是 scapy.all
导入的内容)通过 scapy.conf.load_layers
动态选择要加载的层模块,不幸的是,它不能与不评估代码的代码完成一起使用.