Я хочу создать автономные двоичные файлы для Linux и Windows. И в основном я хочу, чтобы при запуске бота окно консоли должно скрываться, и пользователь не должен был видеть это окно.
Что я могу сделать для этого?
ОТВЕТЫ
Ответ 1
Просто сохраните его с расширением .pyw . Это предотвратит открытие окна консоли.
В системах Windows нет понятия «исполняемый режим». Установщик Python автоматически связывает файлы.py с файлом python.exe, чтобы двойной щелчок на файле Python запускал его как скрипт. Расширение также может быть.pyw, в этом случае окно консоли, которое обычно появляется, подавляется.
Ответ 2
В linux просто запустите его, без проблем. В Windows вы хотите использовать исполняемый файл pythonw.
Update
Хорошо, если я понимаю вопрос в комментариях, вы спрашиваете, как сделать окно команд, в котором вы запустили бот из командной строки?
- для Windows
Я думаю, что правильно. В любом случае, теперь вы можете закрыть терминал.
ЗАКРЫВАЕТСЯ КОНСОЛЬ C# ЧТО ДЕЛАТЬ
Ответ 3
В Unix-системах (включая Linux, macOS и BSD)
Используйте nohup mypythonprog ‘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
Источник: utyatnishna.ru
Консольные окна закрываются сразу после нажатия Ctrl + F5 в инструментах Visual Studio для Python
Я установил Python Tools для Visual Studio и не могу видеть вывод в окне консоли, как я вижу вывод, когда я запускаю консольное приложение C # в Visual Studio при нажатии следующих сочетаний клавиш.
F5 — . Начинает отладку программы и закрывает окно консоли в C # и Python.
Консоль закрывается что делать?
Ctrl + F5 — Запуск без отладки, работает в C # , как и ожидалось, но не в программе Python . Он всегда выходит из окна консоли под обеими опциями.
Для приложения Python существует третий параметр Выполнить проект в Python Interactive . Эта опция иногда производит вывод, а иногда нет.
Что я должен сделать, чтобы увидеть вывод в окне консоли и окна не должны закрываться после запуска программы? Это вообще возможно или какая-то концептуальная разница для консольных приложений python?
Я что-то здесь делаю не так?
Mitul 24 Фев 2012 в 07:15
3 ответа
Лучший ответ
В разделе «Инструменты-> Параметры-> Инструменты Python-> Дополнительно» есть раздел «Отладка» для «Ожидание ввода при ненормальном выходе из процесса» и «Ожидание ввода при нормальном выходе из процесса». Я думал, что они должны были быть включены по умолчанию, но включение их должно заставить его ждать.
Dino Viehland 23 Мар 2012 в 05:09
Для будущих посетителей из Google. Это не связано с настройками Python, но предотвращает автоматическое закрытие окна консоли при использовании «Пуск без отладки» (Ctrl + F5). Попробуйте найти этот параметр.
Project -> «project name» Properties -> Configuration Properties -> Linker -> System
Затем найдите свойство SubSystem и установите для него значение Console (/SUBSYSTEM:CONSOLE) Вы можете выбрать его с помощью раскрывающегося списка или ввести его. если у вас возникли проблемы с отображением в System , вы также можете проверить в All Options
Хит сохранить, и тогда он должен работать немедленно. Подтверждено, что это работает на VisualStudio 2013, но я также думаю, что это работает и на других версиях.
Brian W 30 Ноя 2017 в 19:47
ОБНОВЛЕНИЕ: Visual Studio 2017 — перечисленные элементы перемещены 🙁 и я не знаю, куда они перемещены
Источник: question-it.com
Как остановить закрытие командной строки в Python?
Потому что я искал эту проблему в Интернете и узнал, что вам нужно поставить какую-то фиктивную строку ввода в конце, чтобы не допустить закрытия командной строки, но я все еще сталкиваюсь с проблемой .. Пожалуйста, помогите
Я использую python 3.3
- вы можете запустить скрипт через платформу ожидания питонов, чтобы он не «закрылся», или вы можете открыть командную строку (cmd), а затем запустить свой скрипт оттуда, он не будет «закрываться»
- Я не уверен, что вы ищете. делает то, что вы хотите? Какая командная строка закрывается? Командная строка python или оболочка, через которую вы запускаете python?
- гм, я думаю, что знаю проблему: вы даете ввод после второго оператора «input»? цель входной команды — зависнуть («оставаться там и не закрываться»), пока пользователь не нажмет клавишу. если вы дадите ввод, он закрывается.
- Нет, я даю первый ввод, а затем вторую строку, я прошу python напечатать его . затем я снова прошу python для ввода, чтобы он оставался там .. Он отлично работает в режиме ожидания, но не на cmd
В Windows закрывается консоль CMD, потому что процесс Python существует в конце.
Чтобы предотвратить это, сначала откройте консоль, а затем используйте командную строку для запуска вашего скрипта. Для этого щелкните правой кнопкой мыши папку, содержащую сценарий, выберите и введите в консоли.
Альтернативой, как вы выяснили, является откладывать сценарий заканчивается добавлением в конце вызова . Это позволяет пользователю сценария выбирать, когда сценарий завершится и консоль закроется.
Это можно сделать с помощью модуля os. Ниже приведен простой код:
Это вызовет паузу и попросит пользователя нажать любую клавишу для продолжения.
[edit: Вышеупомянутый метод хорошо работает для ОС Windows. Кажется, проблема с Mac (как указано ihue в комментариях). Дело в том, что библиотека «os» зависит от операционной системы, и некоторые команды могут не работать в одной операционной системе, как они работают в другой].
- 1 библиотека «os» зависит от операционной системы. Я использую это с окнами, и он отлично работает, потому что на самом деле в cmd есть команда «пауза». Возможно, у Linux есть другой способ добиться этого.
- Хорошо, спасибо за разъяснения. Я проверю, как это сделать специально на Mac, но вы должны были упомянуть об этом в своем ответе.
- Правда ihue, я это добавил. Спасибо, что подняли этот вопрос. Пожалуйста, поделитесь своими выводами и для Mac.
Для сред Windows:
Если вы не хотите переходить в командную строку (или работать в среде, где командная строка ограничена), я думаю, что следующее решение — goo. Решение, которое я использую, — создать файл bat.
Используйте блокнот, чтобы создать текстовый файл. В файле содержимое будет выглядеть примерно так:
Затем сохраните файл как «my_python_program.bat» — НЕ ЗАБУДЬТЕ ВЫБРАТЬ «Все файлы!»
Когда вы запустите файл bat, он запустит программу python и остановится в конце, чтобы вы могли прочитать вывод. Затем, если вы нажмете любую клавишу, это закроет окно.
Источник: ru.fluffyfables.com