所以,我用Ubuntu写了一个小脚本。
#!/usr/bin/env python
import sys
#from scapy.all import *
try
import scapy
except ImportError:
del scapy
from scapy import all as scapy
i= IP()
t= TCP()
i.dst='192.168.56.100'
t.dport=22
pakket=i/t
answered,unanswered=sr(pakket)
answered.nsummary()我写“尝试”是因为这里的另一个主题(尝试它作为一种解决方案)。这段代码的当前输出如下所示
Traceback (most recent call last):
File "./scapy.py", line 5, in <module>
import scapy
File "/home/nicholas/scapy.py", line 9, in <module>
i=IP()
NameError: name 'IP' is not defined仅使用from scapy.all import *而不使用“try”进行尝试时。
Traceback (most recent call last):
File "./scapy.py", line 3, in <module>
from scapy.all import *
File "/home/nicholas/scapy.py", line 3, in <module>
from scapy.all import *
ImportError: No module named all我尝试了在谷歌上找到的不同的导入方式,但仍然不起作用。有人能告诉我我哪里做错了吗?(不要介意这篇文章的缩进)
发布于 2012-11-29 00:54:38
从scapy源代码来看,scapy包似乎没有import任何东西,也没有在__init__中定义__all__。因此,您需要显式地import scapy.all (或from scapy import all),然后才能从它from scapy.all import任何其他东西,因为它还不会在sys.modules中。请注意,这只需要在您的程序流中发生一次,因为在解释器导入模块之后,它将可用于从那时起执行的所有代码,而不管它在哪里。查看Python docs on modules和import是如何工作的,特别是导入一个包,以获得更多细节。
编辑:我想我现在看到问题了,我只是注意到了堆栈跟踪的错误部分。我很确定你在这里处理的是一个名称冲突。您的文件名为scapy.py,因此当您从该文件的上下文执行import scapy时,实际上是将文件本身作为一个模块导入。因为您的文件没有名为all的子模块(它不能,因为它不是一个包),所以您会得到您看到的导入错误。尝试将您的文件名更改为不与您希望在其中导入的任何包或模块冲突的名称,看看效果是否更好。
顺便说一下,在堆栈跟踪中请注意,您的导入实际上是递归地调用您的一个文件。这应该是一个线索,表明在导入过程中出现了混乱。
发布于 2019-06-12 03:11:52
我在OSX上遇到了类似的问题,我安装了pip install scapy包,然后尝试执行我的测试文件scapy.py,我得到的错误是:
python scapy.py
Traceback (most recent call last):
File "scapy.py", line 1, in <module>
from scapy.all import *
File "/Users/**/Desktop/scapy-test/scapy.py", line 1, in <module>
from scapy.all import *
ModuleNotFoundError: No module named 'scapy.all'; 'scapy' is not a package在我的例子中,是文件名本身导致了它不能被称为scapy.py的问题。我将其更改为test.py,一切都正常了,它与包的位置无关,只与文件名有关。
发布于 2020-06-05 18:40:15
我喜欢在@Daniel answer中添加一些东西。你真正的问题不是替罪羊套餐。您真正的问题在于您的python文件名。请勿使用库名或其内容作为您的文件名。
在本例中,您的文件名为scapy.py。在此之后,您将导入scappy。在这里,您意外地在代码中调用了python文件作为对象,因为编译器无法理解要调用哪种类型(文件或库)。这个错误就出现了。
https://stackoverflow.com/questions/13610064
复制相似问题