Как заставить скрипт Python работать без открытия окна консоли?

Я хочу дважды щелкнуть по моему скрипту Python (который использует графический интерфейс Tkinter), и я просто хочу, чтобы он открывал окно Tkinter, а не окно консоли.

Чтобы сделать это, я изменил расширение с.py на.pyw, и это, кажется, работает нормально в Windows, но когда я дважды щелкаю свой файл.pyw на компьютере с Linux, это не работает. Это просто замерзло, и мне пришлось перезапустить мою систему.

Пожалуйста, предложите независимое от платформы решение, которое помогло бы мне запустить скрипт Python без открытия терминала / командной строки.

2 ответа

Решение

Ты можешь использовать pyinstaller создать исполняемые файлы для разных платформ, которые вы хотите.

Например,

Синтаксис команды pyinstaller:

pyinstaller [options] script [script ...] | specfile

В самом простом случае установите текущий каталог в местоположение вашей программы myscript.py и выполните:

pyinstaller myscript.py

PyInstaller анализирует myscript.py и:

Writes myscript.spec in the same folder as the script.
Creates a folder build in the same folder as the script if it does not exist.
Writes some log files and working files in the build folder.
Creates a folder dist in the same folder as the script if it does not exist.
Writes the myscript executable folder in the dist folder.

В папке dist вы найдете приложение, которое вы распространяете среди своих пользователей.

Обычно вы называете один скрипт в командной строке. Если вы назовете больше, все будут проанализированы и включены в вывод. Однако первый названный сценарий предоставляет имя для файла спецификации и для исполняемой папки или файла. Его код выполняется первым во время выполнения.

Для определенных целей вы можете редактировать содержимое myscript.spec (описано в разделе "Использование файлов спецификаций"). После того, как вы сделаете это, вы называете файл спецификации PyInstaller вместо сценария:

pyinstaller myscript.spec

Вы можете указать путь к файлу скрипта или спецификации, например

pyinstaller options... ~/myproject/source/myscript.py

или в Windows

pyinstaller "C:\Documents and Settings\project\myscript.spec"

pyinstaller

Прошло много времени с тех пор, как я попробовал Linux, но я считаю, что это должно быть довольно просто, во-первых, вам нужно поместить шебанг в начало скрипта, чтобы ваша оболочка знала, какой исполняемый файл использовать:

#!/usr/bin/python

или если вы хотите конкретную версию, вы можете расширить это до:

#!/usr/bin/python3.2

используя любую версию, которую вы хотите (работает только для первых 2 цифр)

тогда вам нужно пометить его как исполняемый:

chmod 711 myfile.py

для получения дополнительной информации об этом см. эту страницу

затем, когда вы дважды щелкнете по нему, в rpi (в последний раз я использовал linux) он спрашивает, хотите ли вы выполнить его или выполнить в терминале.

если вы решите выполнить его без терминала, вы должны увидеть только графический интерфейс tkinter

Другие вопросы по тегам