Запуск сценария Python без появления терминала? [Дубликат]

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 24 August 2018 в 10:09
    поделиться

    Если все, что вы хотите сделать, это запустить ваш скрипт 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 24 August 2018 в 10:09
    поделиться

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

    import win32gui, win32con
    
    The_program_to_hide = win32gui.GetForegroundWindow()
    win32gui.ShowWindow(The_program_to_hide , win32con.SW_HIDE)
    
    2
    ответ дан Mohsen Haddadi 24 August 2018 в 10:09
    поделиться

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

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

    В системах Windows

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

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

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

    Дополнительная информация. для ситуаций, для которых потребуется решение 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 24 August 2018 в 10:09
    поделиться

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

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

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

    83
    ответ дан Wolf 24 August 2018 в 10:09
    поделиться
    Другие вопросы по тегам:

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