Scapy.alle import * funktioniert nicht
Also schrieb ich ein kleines Skript in Ubuntu für scapy.
#!/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()
schrieb ich "versuchen", weil ein anderes Thema hier (versucht, es als eine Lösung).
Meine aktuelle Ausgabe mit diesem code ist der folgende
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
wenn Sie versuchen, es nur mit von scapy.alle import * ohne das 'versuchen'.
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
Ich versucht, verschiedene Möglichkeiten der Einfuhr über Google gefunden aber es funktioniert immer noch nicht. Könnte jemand mir bitte sagen, was ich falsch mache? (nicht dagegen den Einzug von diesem post)
- Bitte korrigieren Sie die Einzüge, die Sie nicht egal.
- versuchen Sie so etwas wie von scapy.alle import-IP -, TCP-sr, wenn Sie nicht mit etwas anderem (ohne try-except)
- Ich bin noch immer "Kein Modul mit dem Namen 'alle', wenn Sie versuchen, die
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom Blick auf scapy Quelle, die scapy-Paket scheint nicht zu
import
nichts, oder definieren Sie eine__all__
im__init__
. Als ein Ergebnis, müssen Sie explizitimport scapy.all
(oderfrom scapy import all
), bevor Siefrom scapy.all import
etwas anderes von ihm, als es nicht insys.modules
noch. Beachten Sie, dass dies nur zu geschehen hat, sobald in Ihrem Programm fließen aber, wie nach der interpreter importiert das Modul, es wird verfügbar sein, um allen code, der ausgeführt wird, von da an, unabhängig davon, wo es ist. Werfen Sie einen Blick auf die Python-docs-on-Module und wieimport
, und speziell dem importieren eines Pakets arbeitet für mehr details.Bearbeiten:
Ich glaube, ich sehe das problem jetzt, ich war einfach die Aufmerksamkeit auf den falschen Teil Ihrer stack-trace. Ziemlich sicher, was Sie zu tun haben, ist hier zu einem Namenskonflikt. Ihre Datei benannt ist
scapy.py
, so dass, wenn Sieimport scapy
aus dem Kontext, dass die Datei, die Sie tatsächlich importieren die Datei selbst als ein Modul. Da deine Datei keine submodule namensall
(kann es nicht, da es nicht ein Paket), erhalten Sie die import-Fehler, den Sie sehen. Schalten Sie den Namen der Datei, um etwas, das nicht in Konflikt mit irgendwelchen Paketen oder Modulen, die Sie importieren möchten, in es, und sehen, ob das besser funktioniert.By the way, beachten Sie die in Ihrem stack-traces, Ihr import ist eigentlich im wesentlichen rekursiv aufrufen von Ihr eine Datei. Das sollte ein Hinweis darauf sein, dass etwas drunter und drüber gegangen ist in den import-Prozess.
Ziemlich Alter post.
Für diejenigen, die noch auf der Suche, die richtigen import mit aktuellen Versionen wäre:
from scapy.all import *
Ich sah dies als ich hatte ein
scapy.py
im aktuellen Verzeichnis.scapy.all import *
scheint sich im aktuellen Verzeichnis zuerst.Ich hatte ein ähnliches problem unter OSX, ich installierte die scapy-Paket
pip install scapy
und dann habe ich ausführen wollte meine test-Dateiscapy.py
die Fehler, Die ich bekam, war :In meinem Fall war es der name der Datei selbst, die das problem verursacht hat, es kann nicht als
scapy.py
. Ich ändere es zutest.py
und alle funktionierte, es hatte nichts zu tun mit dem Paket-Lage, nur den Namen der Datei.