PyCharm 不建议自动完成并标记未解决的参考
PyCharm doesn't suggest autocompletion and marks unresolved reference
我正在尝试制作一个简单的 scapy 程序,但 PyCharm 不建议任何代码完成并标记 'unresolved reference'。但是,该程序有效。
我在 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()
, 以及其他类似的方法。
你对此无能为力:/
(请参阅 以获得更完整的答案)
Scapy loads its layer modules dynamically。它允许 Scapy 用户分别切换每个层的加载,但 IDE 将无法检测到导入。
要解决此问题,您可以直接从特定文件导入图层,而不是 Scapy.all
。
例如:
from scapy.layers.l2 import ARP
from scapy.sendrecv import sniff
尽管需要更多时间,但它更简洁(因为您不需要导入所有内容)。如果您不知道哪个模块是层,只需在 Scapy 的 shell.
中为它 help()
我正在尝试制作一个简单的 scapy 程序,但 PyCharm 不建议任何代码完成并标记 'unresolved reference'。但是,该程序有效。
我在 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()
, 以及其他类似的方法。
你对此无能为力:/
(请参阅
Scapy loads its layer modules dynamically。它允许 Scapy 用户分别切换每个层的加载,但 IDE 将无法检测到导入。
要解决此问题,您可以直接从特定文件导入图层,而不是 Scapy.all
。
例如:
from scapy.layers.l2 import ARP
from scapy.sendrecv import sniff
尽管需要更多时间,但它更简洁(因为您不需要导入所有内容)。如果您不知道哪个模块是层,只需在 Scapy 的 shell.
中为它help()