我试图在python 3.6中使用scapy来解析pcap文件,我试图使用的功能是pdfdump。
from scapy.all import *
packets = rdpcap('***path***/nitroba.pcap')
for packet in packets[0:1]:
packet.psdump("isakmp_pkt.eps",layer_shift=1)
我收到以下错误: “ImportError:必须安装PyX及其依赖项”
显然我安装了它,并且一个简单的“导入pyx”可以工作,但错误仍然存在。我做了一些挖掘,发现问题源于此代码:
def _test_pyx():
"""Returns if PyX is correctly installed or not"""
try:
with open(os.devnull, 'wb') as devnull:
r = subprocess.check_call(["pdflatex", "--version"], stdout=devnull, stderr=subprocess.STDOUT)
except:
return False
else:
return r == 0
执行时,它确定pyx是否安装正确,但它显示“FileNotFoundError:[WinError 2]系统找不到指定的文件”。
想法?
答案 0 :(得分:1)
我自己得到了答案 - 当我进入scapy命令行界面时,它说我需要安装miktex,这是PyX的依赖,所以我做到了。 第二个错误看起来像一个错误 - 看起来在packet.py模块中有一个缺少的“import os”语句,但是在第531行中有一个os.start文件。
我添加了它,并且它有效:)
答案 1 :(得分:1)
就我而言(Ubuntu 18,Scapy 2.4.3),我必须安装pdflatex,即
sudo apt install texlive-latex-base