Создание исполняемого файла PyInstaller как в командной строке, так и в оконном режиме

Я пишу программу на Python, которую можно использовать как в командной строке, так и в интерактивном окне. (Плохая ли это идея?) Если указаны аргументы командной строки, она выполняет задачу, а затем печатает «успех» или «неудача». В противном случае он запускает интерактивное окно.

PyInstaller, похоже, не поддерживает это. У меня есть два неоптимальных варианта:

  1. Использовать режим --console: командная строка отлично работает, но если я дважды щелкну исполняемый файл, чтобы отобразить интерактивное окно, он также покажет окно консоли, которое мне не нужно.
  2. Использовать режим --noconsole: всплывающее окно консоли отсутствует, но вывод не отображается при использовании командной строки.

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

Любой совет?


person Alan L    schedule 16.08.2016    source источник


Ответы (1)


Это не идеальное решение, но этот обходной путь помог мне:

Создайте приложение с графическим интерфейсом в режиме --noconsole --one file следующим образом:

pyinstaller --noconsole --onefile hello.py

Когда вы дважды щелкаете по приложению из Windows, оно запускается нормально (без консоли).

Теперь, чтобы увидеть вывод, перейдите к исполняемому файлу из командной строки и введите:

hello.exe | more

| more должен отправлять операторы печати на консоль.

person Peter    schedule 16.02.2018