Importing python modules in jython

23,315

Solution 1

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.

Solution 2

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.

Share:
23,315
TheBigS
Author by

TheBigS

Updated on July 05, 2022

Comments

  • TheBigS
    TheBigS almost 2 years

    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

  • Amala
    Amala over 13 years
    I had an issue under tomcat where I had to do a 'import site' first
  • user323094
    user323094 over 11 years
    The official docs are here: jython.org/jythonbook/en/1.0/…
  • BoltzmannBrain
    BoltzmannBrain about 9 years
    So how then can the directory for python packages get added to the jython sys.path?
  • Aminah Nuraini
    Aminah Nuraini over 8 years
    In my case, I had to use jython ez_setup.py scapy instead
  • Micha93
    Micha93 almost 3 years
    What good is that going to do me? I can use the PYTHONPATH and then it works to import modules. What doesn't work is that the imported module can import other modules.