Как закрыть консоль, когда мой графический интерфейс tkinter запущен после преобразования его в формат EXE [дубликат]

Поместите весь код в блок try, затем поймайте исключение в блоке catch

try
{
    // code
}
catch(ClassNotFoundException e1)
{
    e1.getmessage();
}
54
задан nbro 19 July 2015 в 14:34
поделиться

6 ответов

В linux просто запустите его, без проблем. В Windows вы хотите использовать исполняемый файл pythonw.

Обновить

Хорошо, если я понимаю вопрос в комментариях, вы спрашиваете, как создать командное окно, в котором вы

  • UNIX (Linux)
  • $ nohup mypythonprog & amp;

    [gg]
      • Windows

      C: /> start pythonw mypythonprog

      I думаю это правильно. В любом случае, теперь вы можете закрыть терминал.

    21
    ответ дан Charlie Martin 21 August 2018 в 10:23
    поделиться
    • 1
      Это не главная проблема ... Основная проблема заключается в том, чтобы скрыть окно консоли, а затем запустить программу. Как это сделать? – user 19 April 2009 в 02:47
    • 2
      Ты имеешь в виду тот, с которого ты начинаешь? – Charlie Martin 19 April 2009 в 02:52
    • 3
      Измените расширение файла на .pyw для связи с pythonw.exe oreilly.com/catalog/pythonwin32/chapter/ch20.html – bernie 19 April 2009 в 02:52
    • 4
      "nohup mypythonprog & amp; & quot; поможет мне в linux ... но python не будет установлен на машине Windows. Итак, «запустите pythonw mypythonprog». не помогу мне, я думаю. – user 19 April 2009 в 03:42
    • 5
      О, я понимаю. На самом деле unix == UNIX и не преследуйте своих старших. – Charlie Martin 16 January 2017 в 20:00

    Если все, что вы хотите сделать, это запустить ваш скрипт Python на компьютере с Windows, на котором установлен Python Interpreter, преобразование расширения вашего сохраненного скрипта с '.py' на '.pyw' должно сделать трюк.

    Но если вы используете py2exe для преобразования вашего сценария в автономное приложение, которое будет запускаться на любой машине Windows, вам нужно внести следующие изменения в ваш файл setup.py.

    Следующий пример представляет собой простой python-GUI, созданный с использованием Tkinter:

    from distutils.core import setup
    import py2exe
    setup (console = ['tkinter_example.pyw'],
           options = { 'py2exe' : {'packages':['Tkinter']}})
    

    Измените «консоль» в приведенном выше коде на «windows» ..

    from distutils.core import setup
    import py2exe
    setup (windows = ['tkinter_example.pyw'],
           options = { 'py2exe' : {'packages':['Tkinter']}})
    

    Это откроет только созданный графический интерфейс Tkinter и отсутствие окна консоли.

    7
    ответ дан John918 21 August 2018 в 10:23
    поделиться
    • 1
      Хотя я чувствую, что этот ответ немного не соответствует теме, я пошел и разместил его в любом случае, так как он отвечает на следующий вопрос (ссылка ниже), который был отмечен как дубликат этого вопроса. – John918 25 November 2016 в 05:44
    • 2
      [Д0] stackoverflow.com/questions/31501769/… – John918 25 November 2016 в 05:44
    • 3
      Я на самом деле использую pyinstaller, но у меня есть опция для одной и той же вещи (-w) и исправлена ​​проблема для меня. – ChrisWue 11 April 2018 в 04:35

    Это скроет вашу консоль. Внесите эти строки в свой код, чтобы сначала скрыть вашу консоль.

    import win32gui, win32con
    
    The_program_to_hide = win32gui.GetForegroundWindow()
    win32gui.ShowWindow(The_program_to_hide , win32con.SW_HIDE)
    
    2
    ответ дан Mohsen Haddadi 21 August 2018 в 10:23
    поделиться
    • 1
      Пожалуйста, объясните свой код на английском языке. Благодаря! Тот, кто не нуждается в объяснении, мог написать его сам. – jpaugh 14 March 2018 в 20:33
    • 2
      При этом терминал будет всплывать при запуске. – Simon 18 May 2018 в 22:05
    • 3
      да ты прав – Mohsen Haddadi 19 May 2018 в 17:43

    В Unix-системах (включая Linux, macOS и BSD)

    Используйте nohup mypythonprog &, и вы можете закрыть окно терминала, не нарушая процесс. Вы также можете запустить exit, если вы работаете в облаке, и не хотите оставлять зависающий процесс оболочки.

    В системах Windows

    Сохраните программу с помощью .pyw, и теперь он откроется с помощью pythonw.exe. Нет окна оболочки.

    Например, если у вас есть foo.py, вам нужно переименовать его в foo.pyw.

    16
    ответ дан noɥʇʎԀʎzɐɹƆ 21 August 2018 в 10:23
    поделиться

    Дополнительная информация. для ситуаций, для которых потребуется решение win32gui, размещенное Mohsen Haddadi ранее в этом потоке:

    Начиная с python 361, win32gui & amp; win32con не являются частью std-библиотеки python. Для их использования необходимо установить пакет pywin32; теперь возможно через pip.

    Дополнительная информация о пакете pywin32 находится по адресу: Как использовать модуль win32gui с Python? .

    Также, чтобы применить дискрецию закрывая окно, чтобы случайно не закрыть какое-либо окно на переднем плане, разрешение может быть продолжено вдоль следующих строк:

    try     :
    
        import win32gui, win32con;
    
        frgrnd_wndw = win32gui.GetForegroundWindow();
        wndw_title  = win32gui.GetWindowText(frgrnd_wndw);
        if wndw_title.endswith("python.exe"):
            win32gui.ShowWindow(frgrnd_wndw, win32con.SW_HIDE);
        #endif
    except  :
        pass
    
    2
    ответ дан Snidhi Sofpro 21 August 2018 в 10:23
    поделиться
    • 1
      Почему бы просто не использовать расширение * .pyw? Это слишком долго. – Anynomous 25 April 2018 в 22:16
    • 2
      Использование расширения .pyw не может быть решением в случаях использования, например, с сервером Cgi (http.server) на localhost. Поскольку в таких случаях скрипт python заканчивается выполнением python.exe, несмотря на расширение .pyw. – Snidhi Sofpro 26 April 2018 в 14:47
    • 3
      При этом терминал будет всплывать при запуске. – Simon 18 May 2018 в 22:05
    • 4
      Ах, но что, если вы сделали что-то вроде этого: import os,sys if sys.args[-1]!='Y': os.system('pythonw myprog.py Y') # or whatever your program's name is # Your program's code – Anynomous 5 June 2018 в 20:21

    Просто сохраните его с расширением .pyw. Это предотвратит открытие окна консоли.

    В системах Windows нет понятия «исполняемый режим». Установщик Python автоматически связывает файлы .py с файлом python.exe, чтобы двойной щелчок на файле Python запускал его как скрипт. Расширение также может быть .pyw, в этом случае окно консоли, которое обычно появляется, подавляется.

    Объяснение в нижней части раздела 2.2.2

    83
    ответ дан Wolf 21 August 2018 в 10:23
    поделиться
    • 1
      В этой ссылке нет раздела 2.2.2. Почему вы не опубликовали объяснение здесь? – mcont 19 August 2015 в 15:25
    • 2
      Существует раздел 2.2.2. [Д0] docs.python.org/2.6/tutorial/… – Marlon Abeykoon 29 August 2016 в 16:34
    Другие вопросы по тегам:

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