Как заставить скрипт 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"
Прошло много времени с тех пор, как я попробовал Linux, но я считаю, что это должно быть довольно просто, во-первых, вам нужно поместить шебанг в начало скрипта, чтобы ваша оболочка знала, какой исполняемый файл использовать:
#!/usr/bin/python
или если вы хотите конкретную версию, вы можете расширить это до:
#!/usr/bin/python3.2
используя любую версию, которую вы хотите (работает только для первых 2 цифр)
тогда вам нужно пометить его как исполняемый:
chmod 711 myfile.py
для получения дополнительной информации об этом см. эту страницу
затем, когда вы дважды щелкнете по нему, в rpi (в последний раз я использовал linux) он спрашивает, хотите ли вы выполнить его или выполнить в терминале.
если вы решите выполнить его без терминала, вы должны увидеть только графический интерфейс tkinter