Выполнение команд bash из приложения фляги - PullRequest
0 голосов
/ 24 августа 2018

Детали приложения: Ubuntu 16.04 + фляга + nginx + uwsgi

Я пытаюсь выполнить команду bash из приложения фляги.

@app.route('/hello', methods=('GET', 'POST'))
def hello():
    os.system('mkdir my_directory')
    return "Hello"

Приведенный выше код успешно запущен, но не создает никаких каталогов. Также он создает каталог на моем локальном компьютере, который не имеет никакой настройки уровня nginx.

Я также пробовал следующие способы:

  1. subprocess.call (['mkdir', 'my_directory']) # Выдает внутреннюю ошибку сервера
  2. subprocess.call (['mkdir', 'my_directory'], shell = True) # Нет ошибок, но каталог не создан
  3. subprocess.Popen (['mkdir', 'my_directory']) # Выдает внутреннюю ошибку сервера
  4. subprocess.Popen (['mkdir', 'my_directory'], shell = True) # Нет ошибок, но каталог не создан

Нужны ли какие-либо изменения конфигурации уровня nginx.

1 Ответ

0 голосов
/ 24 августа 2018

Наконец-то я понял.Я следовал за Вызов подпроцесса Python возвращает «команда не найдена», Терминал выполняется правильно .

Мне не хватало абсолютного пути mkdir.Когда я выполнил subprocess.call(["/bin/mkdir", "my_directory"]), он успешно создает каталог.

Приведенная выше ссылка содержит полную информацию.

Также я был бы благодарен, если кто-нибудь опишет причину, почему мне нужно указать абсолютныйпуть для mkdir.

Спасибо всем.:)

...