Невозможно вызвать двоичный файл C ++ с использованием метода subprocess.Popen. - PullRequest
1 голос
/ 01 ноября 2019
> subprocess.Popen("ADK -j 50 - ordNode jira1disa2 -a '-noControl -sourceDir /some/path/given/' > logFile.log 2>&1 &")

Я написал почти такой же запрос, как упомянуто выше. ADK - это один двоичный файл C ++ с некоторыми аргументами в качестве параметров, и я пытаюсь запустить его через скрипт python на сервере.

Когда я помещаю строку:

> ADK -j 50 - ordNode jira1disa2 -a '-noControl -sourceDir /some/path/given/' > logFile.log 2>&1 &

В один .sh файл и запустить этот файл с помощью Python Я могу выполнить результат, но при вызове напрямую я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "test.py", line 47, in <module>
  check_timezone()
  File "test.py", line 40, in check_timezone
  count = subprocess.check_output(command)
  File "/usr/lib/python3.6/subprocess.py", line 537, in check_output
  process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib/python3.6/subprocess.py", line 679, in __init__errread, errwrite)
  File "/usr/lib/python3.6/subprocess.py", line 1249, in _execute_child
  raise child_exception-
  OSError: [Errno 2] No such file or directory

Ограничение:

Я не могу использовать оболочку= True

Я также попытался, указав его в списке со всеми строками, но он также потерпел неудачу, в subprocess.Popen вместе со многими возможными способами ... Пожалуйста, предложите способ, с помощью которого он будет работать.

...