Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyCharm:与Scapy的未解析引用_Python_Ide_Pycharm_Scapy - Fatal编程技术网

Python PyCharm:与Scapy的未解析引用

Python PyCharm:与Scapy的未解析引用,python,ide,pycharm,scapy,Python,Ide,Pycharm,Scapy,我正在使用scapy编写一个用python编写的网络工具。 作为IDE,我正在使用Pycharm。 我的代码有效。因此,如果我运行它,一切都会按预期运行 我的问题是PyCharm给了我一些错误。 它标记了IP、TCP、Ether、。。。作为未定义的引用… 我的代码的相关部分如下所示 #!/usr/bin/env python from scapy.all import * ... ... syn = IP(src=src_ip, dst=dst_ip) / TCP(sport=src

我正在使用scapy编写一个用python编写的网络工具。
作为IDE,我正在使用Pycharm。
我的代码有效。因此,如果我运行它,一切都会按预期运行

我的问题是PyCharm给了我一些错误。
它标记了
IP
TCP
Ether
、。。。作为未定义的引用…

我的代码的相关部分如下所示

#!/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")

...
我尝试了很多我用谷歌找到的东西,比如把我的src文件夹添加为源根目录,我刷新了我能找到的所有缓存,并重新启动了PyCharm几十次,但都没有效果

由于代码可以正常工作,这只是一个小问题,但我仍然希望IDE能够按预期工作


我在MacOS下工作,我使用的是虚拟环境

有同样的问题,请尝试以这种方式导入:

from scapy.layers.inet import IP, UDP, wrpcap, Ether

这对我很有效。

这是一个问题。Scapy使用(使用
importlib
)加载pycharm未检测到的许多模块/自定义模块。这允许用户选择要加载的层

解决方法是从相关的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
  • conf
    对象的
    scapy.config
    (具有
    conf.route
    conf.route6
    等属性)

我建议您打开Scapy shell(或在控制台中从Scapy.all import*导入
),并使用
帮助(…)
检查层/函数来自哪个模块。你也可以在上面查看在线API参考(它有一个搜索栏)

你在使用虚拟环境吗?哦,忘了提这个了。。。是的,我使用的是VirtualVare您配置pycharm来使用virtualenv吗?是的,pycharm将virtualenv配置为“解释器”,我通过pycharm安装了所有需要的数据包,而不是通过virtualenv中的pip。我遇到了同样的问题。这里有什么解决办法吗?