Как вызвать библиотеку Python из Grails (упоминается Jython)? - PullRequest
0 голосов
/ 21 мая 2018

Может ли Jython помочь здесь?Должен ли я запустить Grails выше Jython и если да, то как?Каким-то образом я смогу запустить скрипт Grails и Python на одной и той же JVM.Существуют и другие возможности, такие как создание службы REST для скрипта Python или некоторый межпроцессный обмен данными, но пока мы не будем иметь дело с ними.

1 Ответ

0 голосов
/ 21 мая 2018

Jython - это язык сценариев JSR223, поэтому вы должны быть в состоянии следовать обычным методам.(http://www.jython.org/archive/22/userguide.html#embedding-jython)

ScriptEngine engine = new ScriptEngineManager().getEngineByName("python")
engine.eval("x = 2 + 2")

Может быть нетривиально организовать ваш Jython и любые библиотеки, которые вы хотите использовать, организованные на вашем сервере, но если все, что вам нужно, это язык и стандартные библиотеки,вы должны иметь возможность просто добавить его в качестве зависимости в свой файл сборки - он находится в Maven Central (compile 'org.python:jython:2.7.1b3').

Но имейте в виду, что многие библиотеки Python (то есть библиотеки, использующие скомпилированный C-код)не будут работать с Jython.

Итак, вам, возможно, придется вместо этого использовать собственную установку Python и вызывать ее как процесс (например, с использованием ProcessBuilder). В Groovy есть хороший сахар для этогочто-то вроде со строками.

Process process = "python mypython.py".execute()

Интернет-поиск таких вещей, как «команда groovy execute shell», даст много примеров. В зависимости от сценария развертывания, это может быть сложно настроить и поддерживать.

...