Я работаю с библиотекой Python, но все остальное в Java. Я хочу иметь возможность доступа и использования библиотеки Python из Java, поэтому я начал исследовать и использовать Jython. Мне нужно использовать библиотеки numpy и neurokit.
Я пишу этот простой код в Java:
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.set("values", 10 );
interpreter.execfile("D:\\PyCharmWorkspace\\IoTproject\\Test.py");
PyObject b = interpreter.get("result");
и код в Python:
import sys
sys.path.append("D:\\PyCharmWorkspace\\venv\\lib\\site-packages")
import numpy as np
result = values + 20
Проблема в том, что когда он пытается загрузить модуль numpy, я получаю эту ошибку:
Exception in thread "main" Traceback (most recent call last):
File "D:\PyCharmWorkspace\IoTproject\TestECGfeature.py", line 4, in <module>
import numpy as np
File "D:\PyCharmWorkspace\venv\lib\site-packages\numpy\__init__.py", line 142, in <module>
from . import core
File "D:\PyCharmWorkspace\venv\lib\site-packages\numpy\core\__init__.py", line 24, in <module>
from . import multiarray
File "D:\PyCharmWorkspace\venv\lib\site-packages\numpy\core\__init__.py", line 24, in <module>
from . import multiarray
File "D:\PyCharmWorkspace\venv\lib\site-packages\numpy\core\multiarray.py", line 14, in <module>
from . import overrides
File "D:\PyCharmWorkspace\venv\lib\site-packages\numpy\core\overrides.py", line 166
SyntaxError: unqualified exec is not allowed in function 'decorator' because it contains free variables
Я также пытался сделать это:
interpreter.exec("import sys");
interpreter.exec("sys.path.append('D:\\PyCharmWorkspace\\venv\\lib\\site-packages')");
interpreter.exec("import numpy as np");
, и я получаю :
Exception in thread "main" Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named numpy
Чтобы установить Jython, я добавил файл jar в путь сборки проекта.
Я нашел jep и jpy, которые могут установить связь java с python, но я этого не сделал я не нашел, как их установить или использовать.
Мне нужно вызвать функцию Python, выдающую параметры и получающую результат. Как я могу это сделать или как я могу решить проблему с помощью Jython?