Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Importing python modules in jython

I'm having some issues importing scapy under jython. I've been doing java forever, but python for only a day or two.

The simple case to reproduce the problem is:

$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

If I do these exact same steps under python, everything works. How do I tell jython to use scapy? If it helps, I'm running ubuntu 10.04 and installed jython and scapy via apt-get install

like image 532
TheBigS Avatar asked Jul 15 '10 13:07

TheBigS


People also ask

Can Jython use Python libraries?

Jython does *not* support third-party Python libraries that use extensions written in C. This means that popular Python libraries like numpy, scipy and scikit-learn will not work in Jython (and, for this reason, will not work in Processing.py).

Does Jython support Python 3?

The current release (a Jython 2.7. x) only supports Python 2 (sorry). There is work towards a Python 3 in the project's GitHub repository. Jython implementations are freely available for both commercial and non-commercial use.

Is Jython the same as Python?

Jython and Python are two versions of the same language, used for different contexts. Jython is a Java implementation of Python, which, in a nutshell, means it's Python running on a Java Virtual Machine (JVM) environment. It writes like Python, but it can access the full potential of Java libraries.


2 Answers

You've done the right thing printing sys.path. Now you should go to your python shell, and do this:

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

This will show where scapy is being imported from. The most likely problem is that your jython sys.path doesn't include the directory containing scapy.

like image 78
Ned Batchelder Avatar answered Sep 22 '22 05:09

Ned Batchelder


You can do the easy_install for jython.

Run:

jython ez_setup.py 

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

Then you will get a easy_install script under your jython/bin go there and

jython easy_install scapy

(or whatever module you need)

Then next time you startup jython you will be able to import it.

like image 42
Amala Avatar answered Sep 21 '22 05:09

Amala