PyCharm:Scapy 未解决的引用
PyCharm: Unresolved reference with Scapy
我正在使用 scapy 在 python 中编写网络工具。
作为 IDE 我正在使用 Pycharm.
我的代码有效。因此,如果我 运行 它,一切都会按预期进行。
我的问题是 PyCharm 给我一些错误。
它将 IP
、TCP
、Ether
、... 的每次使用标记为 Undefined Reference to ...
我代码的相关部分如下所示
#!/usr/bin/env python
from scapy.all import *
...
...
syn = IP(src=src_ip, dst=dst_ip) / TCP(sport=src_port, dport=dst_port, seq=src_seq, flags="S")
...
我尝试了很多使用 google 发现的东西,比如将我的 src 文件夹添加为源根目录,我刷新了所有我能找到的缓存并重新启动 PyCharm 数十次,但没有任何效果.. .
由于代码有效,所以这是一个小问题,但我仍然希望我的 IDE 按预期工作
我在 MacOS 下工作并使用虚拟环境
有同样的问题,尝试这样导入:
from scapy.layers.inet import IP, UDP, wrpcap, Ether
对我有用。
这是一个 PyCharm 问题。 Scapy 使用 dynamic loading(使用 importlib
)加载许多模块/自定义模块,pycharm 未检测到。这允许用户 select 他们想要加载的图层。
解决方法是从他们的相关 scapy 文件中导入您需要的任何内容,而不使用 all
。它更干净但需要更长的时间。或者你可以在你的 IDE 中使用“添加例外”,如果你不是在寻找干净的东西。
这里有几个有用的模块
scapy.layers.inet
哪里可以获取IP、TCP..
scapy.layers.inet6
scapy.layers.dns
scapy.sendrecv
有 srp、sr、sr1、sendp、send...
scapy.supersocket
直接访问scapy的套接字
scapy.layers.l2
有以太币,ARP..
scapy.layers.dot11
用于 802.11 内容
scapy.utils
对于 wrpcap
、rdpcap
...
scapy.config
对于 conf
对象(具有 conf.route
或 conf.route6
等属性)
我建议做的是打开 Scapy shell(或在控制台中导入 from scapy.all import *
)并使用 [=27= 检查 layer/function 来自哪个模块].您还可以通过 here
查看在线 API 参考(它有一个搜索栏)
我正在使用 scapy 在 python 中编写网络工具。
作为 IDE 我正在使用 Pycharm.
我的代码有效。因此,如果我 运行 它,一切都会按预期进行。
我的问题是 PyCharm 给我一些错误。
它将 IP
、TCP
、Ether
、... 的每次使用标记为 Undefined Reference to ...
我代码的相关部分如下所示
#!/usr/bin/env python
from scapy.all import *
...
...
syn = IP(src=src_ip, dst=dst_ip) / TCP(sport=src_port, dport=dst_port, seq=src_seq, flags="S")
...
我尝试了很多使用 google 发现的东西,比如将我的 src 文件夹添加为源根目录,我刷新了所有我能找到的缓存并重新启动 PyCharm 数十次,但没有任何效果.. .
由于代码有效,所以这是一个小问题,但我仍然希望我的 IDE 按预期工作
我在 MacOS 下工作并使用虚拟环境
有同样的问题,尝试这样导入:
from scapy.layers.inet import IP, UDP, wrpcap, Ether
对我有用。
这是一个 PyCharm 问题。 Scapy 使用 dynamic loading(使用 importlib
)加载许多模块/自定义模块,pycharm 未检测到。这允许用户 select 他们想要加载的图层。
解决方法是从他们的相关 scapy 文件中导入您需要的任何内容,而不使用 all
。它更干净但需要更长的时间。或者你可以在你的 IDE 中使用“添加例外”,如果你不是在寻找干净的东西。
这里有几个有用的模块
scapy.layers.inet
哪里可以获取IP、TCP..scapy.layers.inet6
scapy.layers.dns
scapy.sendrecv
有 srp、sr、sr1、sendp、send...scapy.supersocket
直接访问scapy的套接字scapy.layers.l2
有以太币,ARP..scapy.layers.dot11
用于 802.11 内容scapy.utils
对于wrpcap
、rdpcap
...scapy.config
对于conf
对象(具有conf.route
或conf.route6
等属性)
我建议做的是打开 Scapy shell(或在控制台中导入 from scapy.all import *
)并使用 [=27= 检查 layer/function 来自哪个模块].您还可以通过 here