如何隐藏在Python中的控制台窗口?
我正在用Python编写一个IRC bot。
我希望为Linux和Windows制作独立的二进制文件。 主要是我希望当bot启动时,控制台窗口应该隐藏,用户不应该看到窗口。
我能做些什么?
只需用.pyw
扩展名保存即可。 这将阻止打开控制台窗口。
在Windows系统上,没有“可执行模式”的概念。 Python安装程序会自动将.py文件与python.exe相关联,以便双击Python文件将其作为脚本运行。 扩展名也可以是.pyw,在这种情况下,通常出现的控制台窗口被禁止。
2.2.2节底部的解释
在Linux中,只要运行它,没问题。 在Windows中,你想使用pythonw可执行文件。
更新
好的,如果我理解了评论中的问题,那么你是在问怎么让你从命令行启动机器人的命令窗口事后离开?
- UNIX(Linux)
$ nohup mypythonprog&
- 视窗
C:/>启动pythonw mypythonprog
我认为是对的。 无论如何,现在你可以closuresterminal。
在Unix系统上(包括Linux,macOS和BSD)
使用nohup mypythonprog &
,你可以closuresterminal窗口而不中断进程。 如果您正在云中运行,并且不想离开挂机进程,也可以运行exit
。
在Windows系统上
用.pyw
扩展名保存程序,现在用pythonw.exe
打开。 没有shell窗口。
例如,如果您有foo.py
,则需要将其重命名为foo.pyw
。
如果你只想在安装了Python解释器的Windows计算机上运行你的Python脚本,那么将保存脚本的扩展名从'.py'转换为'.pyw'就可以了。
但是,如果您使用py2exe将脚本转换为可在任何Windows计算机上运行的独立应用程序,则需要对“setup.py”文件进行以下更改。
下面的例子是使用Tkinter制作的一个简单的python-GUI:
from distutils.core import setup import py2exe setup (console = ['tkinter_example.pyw'], options = { 'py2exe' : {'packages':['Tkinter']}})
将上面代码中的“console”更改为“windows”
from distutils.core import setup import py2exe setup (windows = ['tkinter_example.pyw'], options = { 'py2exe' : {'packages':['Tkinter']}})
这只会打开Tkinter生成的GUI和没有控制台窗口。