Я пытаюсь запустить скрипт python в своем веб-приложении на фляге.Обычно пользователь может нажать на кнопку, и сценарий должен запускаться на сервере, на котором размещено мое веб-приложение.Я размещаю его на Windows Server 2016 и IIS (я знаю, я должен рассмотреть Linux)
Когда пользователь нажимает на кнопку, сервервыполняет следующий скрипт с помощью функции os.system, которая настроена следующим образом:
def run_python_script(script_path_and_arguments):
try:
command = 'python {}'.format(script_path_and_arguments)
system(command)
return True, 'Success'
except Exception as e:
logger.error('Failed to run script, exception: {}'.format(e))
return False, 'Unknown Error'
Когда я запускаю скрипт локально на своей рабочей станции, онвыполняет нормально.Когда я запускаю скрипт с сервера, из командной строки он работает нормально. Когда я пытаюсь запустить его через веб-сайт, при нажатии кнопки он не работает.
Мне кажется, что это должны быть некоторыепроблема разрешения / безопасности, когда она работает под IIS.Можете ли вы представить, где мне следует искать решение этой проблемы?
на сервере, где python.exe находится в каталоге c: \ Anaconda3 \
Редактировать: теперь я попытался захватитьвывод, запустив скрипт с модулем подпроцесса: он выдает простое исключение «Команда« python ... »вернула ненулевой статус выхода 1»
def run_python_script(tscript_path_and_arguments):
try:
command = 'python {}'.format(script_path_and_arguments)
output_bytes = subprocess.check_output(command, stderr=subprocess.STDOUT)
output = output_bytes.decode('utf-8')
lines = output.split('\n')
for line in lines:
logger.info(msg='Script output = {}'.format(line))
return True, 'Success'
except Exception as e:
logger.error('Failed to run script, exception: {}'.format(e))
return False, 'Unknown Error'