开发者社区> 问答> 正文

使用pcap模板时的ipv6Packet错误

尝试使用python中的Kaitai Struct读取pcap。

我已经从该js pcap.ksy 文
件创建了python 文件

$ ./bin/kaitai-struct-compiler -t python  --outdir xx formats/network/pcap.ksy 
$ ls xx
ethernet_frame.py  ipv6_packet.py  __pycache__
icmp_packet.py     packet_ppi.py   tcp_segment.py
ipv4_packet.py     pcap.py         udp_datagram.py

PYTHONPATH设置为xx目录。现在,如果我运行一个简单的单行脚本来检查是否可以加载模块

from pcap import Pcap

我得到这个错误

$ python3 try.py 
Traceback (most recent call last):
  File "try.py", line 1, in <module>
    from pcap import Pcap
  File "/spare/tmp/scratch/kaitai-struct-compiler-0.8/xx/pcap.py", line 11, in <module>
    from packet_ppi import PacketPpi
  File "/spare/tmp/scratch/kaitai-struct-compiler-0.8/xx/packet_ppi.py", line 11, in <module>
    from ethernet_frame import EthernetFrame
  File "/spare/tmp/scratch/kaitai-struct-compiler-0.8/xx/ethernet_frame.py", line 11, in <module>
    from ipv6_packet import Ipv6Packet
  File "/spare/tmp/scratch/kaitai-struct-compiler-0.8/xx/ipv6_packet.py", line 12, in <module>
    from ipv4_packet import Ipv4Packet
  File "/spare/tmp/scratch/kaitai-struct-compiler-0.8/xx/ipv4_packet.py", line 13, in <module>
    from ipv6_packet import Ipv6Packet
ImportError: cannot import name 'Ipv6Packet'

我的理解是,python路径尚可,并且python模块正在从pacp到以太网,ipv6到ipv4的整个链中运行。然后,ipv4尝试再次加载ipv6,脚本崩溃了。

我认为代码正在触发导入循环。

有人知道我在做什么错吗?

展开
收起
几许相思几点泪 2019-12-10 19:52:21 887 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载