Подтвердить что ты не робот

Как скрыть окно консоли в python?

Я пишу IRC-бот в Python.

Я хочу создать автономные двоичные файлы для Linux и Windows. И в основном я хочу, чтобы при запуске бота окно консоли должно скрываться, и пользователь не должен был видеть это окно.

Что я могу сделать для этого?

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Update

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

  • UNIX (Linux)

$nohup mypythonprog &

  • для Windows

C:/" > start pythonw mypythonprog

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

Ответ 3

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

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

В системах Windows

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

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

Ответ 4

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

Но если вы используете py2exe для преобразования вашего Script в автономное приложение, которое будет запускаться на любой машине 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 и отсутствие окна консоли.

Ответ 5

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

import win32gui, win32con

The_program_to_hide = win32gui.GetForegroundWindow()
win32gui.ShowWindow(The_program_to_hide , win32con.SW_HIDE)

Ответ 6

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

Начиная с python 361, win32gui & 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