如何隐藏在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和没有控制台窗口。