Можно ли упаковать приложение python с отдельным терминалом? - PullRequest
0 голосов
/ 27 февраля 2020

Я хотел бы иметь исполняемый файл (Windows, MacOS, Linux) моей программы, который будет иметь свое собственное окно терминала, где пользователи смогут вводить его. Я не хочу, чтобы пользователь устанавливал модули или что-нибудь, кроме этого исполняемого файла. Можно сказать, что интерфейс моей программы будет окном терминала. Возможно ли и с чем?

Я хочу, чтобы GUI моего приложения было окном терминала.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Я подозреваю, что вы ищете проклятия или UniCurses, если вы застряли с Microsoft Windows.

Многие эмуляторы терминала позволят вам запускать их с параметром командной строки, который задает команду для запуска в этом эмуляторе вместо оболочки по умолчанию.

0 голосов
/ 27 февраля 2020

Для создания интерфейса командной строки для вашей программы вы, вероятно, захотите использовать что-то вроде argparse , которое находится в стандартной библиотеке Python. Есть много других многофункциональных интерфейсных модулей командной строки (например, click), которые вы можете использовать вместо этого. Вы можете разработать взаимодействие с командной строкой для своих пользователей, включая ввод и вывод, меню и т. Д. c.

После того, как вы создали приложение, хорошим выбором для его переноса будет PyInstaller модуль. Если вы установите параметр - onefile при его вызове, он сгенерирует один файл .exe, который можно легко передать пользователям. Если вы также установили параметр - console при вызове PyInstaller, то ваше приложение Python .exe будет взаимодействовать с stdin / stdout. На Windows это будет окно cmd.

Если пользователь вызывает ваш .exe через GUI (например, двойной щелчок по его значку), окно CMD Windows будет открыт. Если вы хотите, чтобы это окно оставалось открытым , тем не менее, вам нужно будет создать приложение с неким «бесконечным» / «пленным» дизайном, который никогда не завершится, пока пользователь явно не закроется.

Если пользователь вместо этого запускает .exe с терминала CMD Windows, который уже открыт, то это окно всегда будет оставаться открытым.

...