Вызвать метод класса Python из Groovy скрипт - PullRequest
0 голосов
/ 25 марта 2019

Я хочу выполнить метод моего класса python из groovy script.Этот метод имеет два параметра.

Когда я выполняю эту команду из терминала: python -c 'import Myclass;Myclass.method ("param1", "param2") 'это работает.

Я использую этот код скрипта groovy:

def cmd = "cd /path/to/the/folder && python -c 'import Myclass; Myclass.method(param1,param2)'"
def proc = ["/bin/sh", "-c", cmd].execute()
proc.waitFor()
println "return code: ${proc.exitValue()}"
println "stderr: ${proc.err.text}"
println "stdout: ${proc.in.text}"

Когда я хочу сделать то же самое в скрипте groovyу меня ошибка с параметром: NameError: имя 'param1' не определено.

У вас есть идеи, почему?

С уважением

1 Ответ

0 голосов
/ 25 марта 2019

Когда вы выполняли скрипт в терминале, вы использовали строковые литералы "param1", "param2", а не неопределенные переменные param1, param2. Поскольку вы уже использовали одинарные и двойные кавычки, вы должны избегать двойных кавычек с обратной косой чертой:

def cmd = "cd /path && python -c 'import Myclass; Myclass.method(\"param1\", \"param2\")'"

или просто используйте тройные кавычки:

def cmd = '''cd /path && python -c 'import Myclass; Myclass.method("param1", "param2")' '''
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...