2016-07-31 3 views
0

У меня есть скрипт python, и я выполняю то же самое через java-процесс, используя Jython.Нет модуля с именем pymongo - Jython

Database - MongoDB

pom.xml

<dependency> 
    <groupId>org.python</groupId> 
    <artifactId>jython-standalone</artifactId> 
    <version>2.7.0</version> 
</dependency> 

Java Процесс

public String execute(String val) throws FileNotFoundException, 
      ScriptException { 
     ClassLoader classLoader = getClass().getClassLoader(); 
     InputStream is = (InputStream) classLoader 
       .getResourceAsStream("my.py"); 

     PythonInterpreter interpreter = new PythonInterpreter(); 
     interpreter.execfile(is); 

     PyObject someFunc = interpreter.get("myFunc"); 
     PyObject result = someFunc.__call__(new PyString(val)); 
     String realResult = (String) result.__tojava__(String.class); 
     return realResult; 
    } 

Когда я запускаю питон скрипт, my.py, я получаю ниже ошибки

File "<iostream>", line 3, in <module> 
ImportError: No module named pymongo 

ответ

0

Я решил путем импорта модуля, как показано ниже: -

PythonInterpreter interpreter = new PythonInterpreter(null, new PySystemState()); 
    PySystemState sys = interpreter.getSystemState(); 
    sys.path.append(new PyString("\\python_modules\\pymongo-3.3.0-cp26-none-win_amd64.whl")); 

Я скачал PyMongo модуль из here. Выше работал для меня, таким образом мы можем импортировать модули через jython.

Смежные вопросы