PyCharm不建议自动补全并标记未解决的参考

时间:2019-04-30 18:48:58

标签: python pycharm scapy

我正在尝试制作一个简单的程序,但PyCharm不建议任何代码完成,并标记了“未解决的参考”。该程序有效,但是。

我正在Mac OS 10.14和系统python解释器(/usr/local/bin/python3.7)上使用最新版本的PyCharm。

from scapy.all import *

def arp_display(pkt):
    pkt.summary()
    if pkt[ARP].op == 1:
        print("%s demande qui est %s" % (pkt[ARP].psrc, pkt[ARP].pdst))
    elif pkt[ARP].opH == 2:
        print("%s possède l'addresse %s" % (pkt[ARP].psrc, pkt[ARP].hwsrc))

sniff(prn=arp_display, filter="arp", store=0, count=10)

ARP被标记为未解决的引用,当我输入pkt.ctrl + space时,PyCharm不建议show()summary() ,以及其他应采用的方法。

1 个答案:

答案 0 :(得分:2)

您不能为此做很多事情:/

Scapy loads its layer modules dynamically。它使Scapy用户可以分别切换每个图层的加载,但是IDE将无法检测到导入。

要解决此问题,您可以直接从图层的特定文件而不是Scapy.all导入图层。

例如:

from scapy.layers.l2 import ARP
from scapy.sendrecv import sniff

即使花费更多时间,它也更干净(因为您不导入所有内容)。如果您不知道哪个模块是层,只需在Scapy的外壳中为其help()