使用scapy时未正确安装PyX

时间:2018-06-18 16:43:43

标签: python python-3.x scapy pdflatex 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)

我收到以下错误: “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]系统找不到指定的文件”。

想法?

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