python - PyCharm 不建议自动完成并标记未解析的引用

标签 python pycharm scapy

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

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

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 时,PyCharm 不会建议 show()summary() 以及其他应有的方法。

最佳答案

你对此无能为力:/

(有关更完整的答案,请参阅 https://stackoverflow.com/a/53402404/5459467)

Scapy loads its layer modules dynamically 。它允许 Scapy 用户单独切换每个层的加载,但 IDE 将无法检测到导入。

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

例如:

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

尽管需要更多时间,但它更干净(因为您不需要导入所有内容)。如果您不知道哪个模块是一个层,只需在 Scapy 的 shell 中使用 help() 即可。

关于python - PyCharm 不建议自动完成并标记未解析的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55927068/

相关文章:

pip - PyCharm 的需求警告中未列出包

python - 如何使用python发送原始帧

python - 为什么perl,ruby使用/dev/urandom

python - 协程 vs 延续 vs 生成器

python - 停止 kivy 视频

python - 使用 Scapy 遍历 pcap 文件中的所有 tcp 流

python - 如何从 scapy 中的 hexdump 获取数据?

python - 从 Python 获取和设置 mac 文件和文件夹查找器标签

java - 如何让 PyC​​harm 接受我的自签名 SSL 证书?

python - 在 PyCharm 编辑器中打开 .py 文件