Python Flask скрипт автоматически закрывается при запуске в виде файла .pyw (обходной путь включен) - PullRequest
2 голосов
/ 20 февраля 2020

Проблема

Я создал скрипт basi c python, используя flask для рендеринга страницы HTML. На Windows 10 скрипт отлично работает как файл *. Py , но при запуске как файл *. Pyw страница не отображается.

В диспетчере задач экземпляры python открываются и закрываются в течение нескольких секунд после запуска сценария как *. Pyw .


Код

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def main():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=80)

Обходной путь

Запустите версию *. Py , добавив в код следующие строки:

import ctypes
...
...
...
if __name__ == '__main__':
  cytypes.windll.user32.ShowWindow(ctypes.windll.kernel32.GetConsoleWindow(), 0)
  app.run(debug=True, host="0.0.0.0", port=80)

Приведенный выше код скрывает консоль и запускает flask приложение успешно.


Тем не менее, меня все еще интересует объяснение того, почему метод *. Pyw не будет работать, если у кого-то есть идея.

1 Ответ

2 голосов
/ 20 февраля 2020

.pyw-файлы будут работать на pythonw.exe, а не python.exe. Разница в том, что pythonw.exe не запускается в консоли по умолчанию и работает асинхронно. Это будет означать, что flask запускается и работает в фоновом режиме, пока все остальное не завершится. Поскольку в вашем приложении больше ничего нет, программа завершается напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...