2010-07-15 14 views
9

Ich habe einige Probleme beim Importieren von Scapy unter Jython. Ich habe Java für immer gemacht, aber Python für nur ein oder zwei Tage.Importieren von Python-Modulen in Jython

Der einfache Fall das Problem zu reproduzieren ist:

$jython 

>>> import sys 
>>> sys.path 
['', '/usr/share/jython/Lib', '/usr/lib/site-python', '__classpath__'] 
>>> from scapy.all import * 
Traceback (innermost last): 
File "<console>", line 1, in ? 
ImportError: no module named scapy 

Wenn ich diese exakt die gleichen Schritte unter python tun, alles funktioniert. Wie sage ich jython, um scapy zu verwenden? Wenn es hilft, führe ich ubuntu 10.04 aus und installiere jython und scapy über apt-get install

+0

Überprüfen Sie den 'sys.path', wenn Sie Vanille Python ausführen. Ist da ein Unterschied? –

Antwort

15

Du hast das richtige getan, sys.path zu drucken. Jetzt sollten Sie mit Ihrem Python-Shell gehen, und dies tun:

$ python 
>>> import scapy 
>>> print scapy.__file__ 

Dies zeigt, wo scapy von importiert wird. Das wahrscheinlichste Problem ist, dass Ihr jython sys.path das Verzeichnis, das scapy enthält, nicht enthält.

+0

Wie kann dann das Verzeichnis für Python-Pakete zum jython sys.path hinzugefügt werden? – BoltzmannBrain

5

Sie können die easy_install für jython tun.

Run:

jython ez_setup.py 

von http://peak.telecommunity.com/dist/ez_setup.py

Dann werden Sie ein easy_install Skript unter Ihrem jython/bin bekommen dorthin gehen und

jython easy_install scapy 

(oder was auch immer Modul Sie benötigen)

Dann nächste Mal startest du jytho Sie können es importieren.

+0

Ich hatte ein Problem unter Tomcat, wo ich zuerst eine "Import-Site" machen musste – Amala

+0

Die offiziellen Dokumente sind hier: http://www.jython.org/jythonbook/en/1.0/appendixA.html?highlight=module#setuptools – user323094

+0

In meinem Fall musste ich stattdessen 'jython ez_setup.py scapy' verwenden –

0

Änderung von Amalas Antwort. Sein Code funktioniert nicht für mich, aber ich habe ihn mit etwas Ähnlichem gelöst. Dies funktioniert stattdessen.

Herunterladen ez_setup.py von hier http://peak.telecommunity.com/dist/ez_setup.py

Dann jython ez_setup.py scapy laufen.

Das Ausführen auf einem beliebigen Ordnerpfad spielt keine Rolle