So blenden Sie die Konsole-Fenster in python?
Ich Schreibe gerade einen IRC-bot in Python.
Möchte ich, dass stand-alone binaries für Linux und Windows. Und vor allem möchte ich, dass wenn der bot initiiert, das Konsole-Fenster verbergen sollte und der user sollte nicht in der Lage, um zu sehen, das Fenster.
Was kann ich tun?
Verwandte: Run python script ohne DOS-shell erscheinen
InformationsquelleAutor | 2009-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach speichern Sie es mit einem
.pyw
Erweiterung. Dies verhindert, dass das Konsole-Fenster öffnen.Erklärung unten Abschnitt 2.2.2
Es ist ein Abschnitt 2.2.2. docs.python.org/2.6/tutorial/...
InformationsquelleAutor mdec
In linux führen Sie es einfach, kein problem. In Windows, die Sie verwenden möchten die pythonw ausführbare Datei.
Update
Okay, wenn ich die Frage verstehen, in die Kommentare, sind Sie zu Fragen, wie machen Sie das command-Fenster, in dem Sie begonnen haben, den bot von der Kommandozeile aus gehen Weg danach?
Ich denke das ist richtig. In jedem Fall, Sie können nun schließen Sie das terminal.
Meinst du Sie sind zu starten aus?
Ändern Sie die Dateiendung zu .pyw zuordnen pythonw.exe oreilly.com/catalog/pythonwin32/chapter/ch20.html
"nohup mypythonprog &" wird mir helfen, mich in linux ... aber python ist nicht gonna be installiert auf dem windows-Rechner. Also "start pythonw mypythonprog" nicht mir helfen, denke ich.
Oh, ich verstehe. Eigentlich unix == UNIX-und nicht belästigen, Ihren ältesten.
InformationsquelleAutor Charlie Martin
Auf Unix-Systemen (darunter Linux, macOS und BSD)
Verwenden
nohup mypythonprog &
, und schließen Sie das terminal-Fenster, ohne zu stören den Prozess. Sie können auchexit
wenn Sie in der cloud ausgeführt wird und nicht wollen, lassen Sie eine hängende Schale verarbeiten.Auf Windows-Systemen
Speichern Sie das Programm mit einem
.pyw
- Erweiterung und jetzt wird es offen mitpythonw.exe
. Kein shell-Fenster.Zum Beispiel, wenn Sie
foo.py
, Sie müssen es umbenennen zufoo.pyw
.InformationsquelleAutor noɥʇʎԀʎzɐɹƆ
Wenn alles, was Sie tun möchten, führen Sie Ihre Python-Skript auf einem windows-computer, auf dem der Python-Interpreter installiert, die Umwandlung, die Erweiterung des gespeicherten Skript von '.py' zu '.pyw " sollte den trick tun.
Aber wenn Sie mithilfe von py2exe zu konvertieren Sie Ihr Skript in einer standalone-Anwendung läuft auf jedem windows-Computer, müssen Sie die folgenden änderungen vornehmen, um Ihre 'setup.py' - Datei.
Folgende Beispiel ist ein einfaches python-GUI mit Tkinter:
Ändern "Konsole" in den code oben auf "Fenster"..
Dies wird nur öffnen Sie die Tkinter erzeugt GUI, und nicht Konsole-Fenster.
stackoverflow.com/questions/31501769/...
Ich bin tatsächlich mit pyinstaller aber das ist eine option für die gleiche Sache (-w) und das problem behoben für mich.
InformationsquelleAutor John918
Dies wird verstecken Sie Ihre Konsole. Implementieren Sie diese Zeilen in Ihrem code zuerst zu starten, verstecken Sie Ihre Konsole auf den ersten.
Die Klemme wird kurz eingeblendet werden, wenn Sie ausgeführt werden, obwohl dies.
ja du hast Recht
InformationsquelleAutor Mohsen Haddadi
Einige zusätzliche Informationen. für Situationen, müssen die win32gui Lösung geschrieben von Mohsen Haddadi weiter oben in diesem thread:
Als python-361, win32gui & win32con sind nicht Teil der python-std-Bibliothek.
Um Sie zu verwenden, pywin32-Paket muss installiert sein; nun möglich, via pip.
Mehr hintergrund-Infos auf pywin32-Paket ist unter: Wie die win32gui-Modul mit Python?.
Auch anwenden, Diskretion, während das schließen eines Fenster, so dass Sie nicht versehentlich schließen Sie alle Fenster in den Vordergrund, die Auflösung könnte erweitert werden, entlang der Linien der folgenden:
Mit Hilfe der .pyw Erweiterung nicht eine Lösung sein, in Fällen verwenden, wie mit einem Cgi-server (http.server) auf localhost. Da in solchen Fällen das python-Skript endet immer ausgeführt python.exe trotz der .pyw-Erweiterung.
Die Klemme wird kurz eingeblendet werden, wenn Sie ausgeführt werden, obwohl dies.
Ah, aber was ist, wenn Sie so etwas Tat:
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
InformationsquelleAutor Snidhi Sofpro