能够导入模块但不能导入其中的东西

able to import module but not things from it

我正在 mac(第一次)并使用 pycharm 和视觉代码。

在pycharm,我用的是venv,已经安装了scapy,在解释器包管理器中可以看到它已经安装了,而且“import scapy”下没有红线。当我尝试从该包“from scapy import UDP”导入任何内容或在 scapy“scapy.UDP”中使用任何内容时,问题就出现了。 ----各自的错误如下所示。

ImportError: cannot import name 'UDP' from 'scapy' (/Users/{KEVIN}/PycharmProjects/UDP/venv/lib/python3.9/site-packages/scapy/__init__.py)

AttributeError: module 'scapy' has no attribute 'UDP'

另一方面,我尝试使用可视代码和系统 python,代码运行没有问题,但我无法右键单击 UDP() 并跳转到 class 定义说找不到定义?我觉得这一定是一个 mac 相关的问题,但我似乎无法弄清楚。

尝试: from scapy.all import * 来自 https://scapy.readthedocs.io/en/latest/functions.html

这个有用吗?

UDP不是直接在scapy下的,需要做

from scapy.layers.inet import UDP

然后你可以右击UDP()然后跳转到class定义。

以下两个导入对我也有用:

venv$ python
Python 3.8.10 (default, Sep 28 2021, 16:10:42) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from scapy.ansmachine import AnsweringMachine
>>> from scapy.all import UDP
>>>

请仔细检查你的scapy安装。