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()
和其他类似的方法。
解决方案
您对此无能为力:/
(有关更完整的答案,请参阅https://stackoverflow.com/a/53402404/5459467 )
Scapy动态加载其层模块。它允许 Scapy 用户分别切换每个层的加载,但 IDE 将无法检测到导入。
解决此问题的方法是直接从其特定文件导入图层,而不是Scapy.all
.
例如:
from scapy.layers.l2 import ARP
from scapy.sendrecv import sniff
尽管需要更多时间,但它更干净(因为您不会导入所有内容)。如果你不知道哪个模块是一个层,就help()
在 Scapy 的 shell 中。
推荐阅读
- logging - 如何在 PM2 日志文件中很好地显示控制台颜色?
- android - 在Android中调用OKHttp请求时没有显示ProgressDialog
- python - 如何为 Django Rest Framework 中的多个字段使用基于自定义类的验证器?
- python - pyCharm 的项目设置下没有项目。项目未识别
- css - 升级到 Jakarta EE 9/Primefaces 10 后 CSS 无法正常工作
- r - 具有零边距的 Grid.arrange / 没有间距的镜像条形图
- raspberry-pi - 无法从 Raspberry Pico 读取串行数据
- windows - 在批处理中,是否可以在单个 for 循环中依次运行 fc 和 if %errorlevel% ?
- vb.net - 来自同一个“if”控件的不同结果
- c++ - 删除之前指出的对象 iter2 后,我不能增加 iter2 吗?