@Atroshchenko-Dima
Python, postgres

Как сделать чтоб при запуске приложения .exe сразу открывался локальный сервер в браузере?

У меня на python реализовано web приложение и хочу засунуть его в exe файл.
Для создания файла exe использую данную команду. pyinstaller --icon=favicon.ico app.py
Сейчас при нажатии на ярлык у меня открывается окно терминала и в нем:
* Serving Flask app 'app'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit

Что мне нужно изменить чтоб терминал не открывался и при нажатии на ярлык сразу открывалась ссылка в браузере?

конец кода в серверной части

if __name__ == "__main__":
    app.run()
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
Попробуй добавить
if __name__ == "__main__":
    app.run()
    url = "твоё_приложение"
    webbrowser.open(url)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@rPman
Вопрос на самом деле не простой, речь не о программировании а об идеологии.
У тебя два варианта - твое приложение реализует собственно браузер (примерно так работает electron приложения) либо какими то способами скрывается основное (в твоем случае консольное) окно приложения.

Идеологически скрывать приложение некрасиво, как минимум пользователь должен иметь возможность его остановить, закрыв связанное с ним окно (в реальности закрытие окна не является закрытием приложения но это ожидаемое поведение для пользователя), когда то было нормой, скрываемые окна для приложения 'сворачивали в системный трей', т.е. окно скрывается но в системный трей (у часов) добавляется иконка с меню приложения.

Теперь по факту. Скрыть свою системную консоль приложение не сможет, как в windows так и в linux (при наличии прав конечно сможет, но речь о типовых ситуациях) но можно запустить приложение изначально указав его сокрытым. Для каждой ОС свои способы.

На python можно запустить любое приложение сокрытым, т.е. твое приложение запускает само себя с определенным ключом (и первый экземпляр завершает работу), чтобы исключить зацикливание, следующим образом:
https://stackoverflow.com/questions/2319838/open-a...

upd. погугли pythonw.exe и .pyw extention, такой тип приложений будет запускаться без консоли но как я понял это очень устаревший подход и может не поддерживаться.
Ответ написан
Комментировать
@ceytnot
Работаю не по специальности (:
Так получилось, что пилю для отдела небольшую базу на Flask, веб-интерфейс работает через любой браузер Также использую pyinstaller, но с auto-py-to-exe (мне удобнее тестировать разные настройки в графическом интерфейсе). Там можно выставить значение запуска с консолью и без консоли. Честно скажу, без консоли мое приложение вылетает с ошибкой, с консолью всё работает как надо. Пока не углублялся в этот вопрос, возможно у вас получится найти решение.
Для запуска браузера после запуска Flask использую библиотеку webbrowser.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы