简体   繁体   中英

import module error: calling python script using jython in a java program

I am trying to execute a python file from netbeans using jython in a java program. My code is like this:

PythonInterpreter.initialize(System.getProperties(), System.getProperties(), 
                             new String[0]);
PythonInterpreter interp = new PythonInterpreter();
interp.execfile("as1.py");

error is:

Traceback (most recent call last):
  File "as1.py", line 2, in <module>
    import datetime
ImportError: No module named datetime

and also interdependent python files also not importing those are in same directory.

like:

PythonInterpreter.initialize(System.getProperties(), System.getProperties(), new String[0]);
PythonInterpreter interp = new PythonInterpreter();
interp.execfile("calen.py");

python files are:

calen.py:

from as1 import * 
print ( "I am printing" + str(Moh(1000).run()))

as1.py:

from time import time
import datetime
class Moh:
    def __init__(self, n):  
        self.n = n

    def run(self):
        data = [1,2,3,4,5]
        start = time()
        for i in range(self.n):
            data.append(i)
        end = time()
        return ( end - start )/self.n

if __name__ == "__main__":
    print ( "I am printing" + str(Moh(1000).run()))

error is:

Traceback (most recent call last):
  File "calen.py", line 1, in <module>
    from as1 import * 
ImportError: No module named as1

It is essential to set "python.path" for the PythonInterpreter so that it can load your the as1 module. To do that, you have to initialize PythonInterpreter in this way:

Properties properties = System.getProperties();
properties.put("python.path", PATH_TO_PARENT_DIRECTORY_OF_AS1_PY);
PythonInterpreter.initialize(System.getProperties(), properties, new String[0]);
PythonInterpreter interp = new PythonInterpreter();
interp.execfile("calen.py");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM