使用 scapy 时 PyX 未正确安装

Soc*_*nge 5 python scapy pdflatex python-3.x pyx

我正在尝试在 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)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:“ImportError: PyX and its depedencies must be installed”

显然我安装了它,一个简单的“import 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
Run Code Online (Sandbox Code Playgroud)

执行时,它确定 pyx 是否安装正确,但显示“FileNotFoundError: [WinError 2] 系统找不到指定的文件”。

想法?

小智 8

就我而言(Ubuntu 18,scapy 2.4.3),我必须安装 pdflatex,即

sudo apt install texlive-latex-base  
Run Code Online (Sandbox Code Playgroud)


Soc*_*nge 2

我自己得到了答案——当我进入 scapy 命令行界面时,它说我需要安装 miktex,它是 PyX 的依赖项,所以我就这么做了。第二个错误看起来就像一个错误 - 看起来 packet.py 模块中缺少“import os”语句,但第 531 行中有一个 os.startfile。

我添加了它,它起作用了:)