我正在用Python编写IRC bot.
我希望为Linux和Windows制作独立的二进制文件.主要是我希望当机器人启动时,控制台窗口应该隐藏,用户不应该看到窗口.
我能做些什么?
只需使用.pyw
扩展名保存即可.这将阻止控制台窗口打开.
在Windows系统上,没有"可执行模式"的概念.Python安装程序会自动将.py文件与python.exe相关联,这样双击Python文件就会将其作为脚本运行.扩展名也可以是.pyw,在这种情况下,通常显示的控制台窗口被抑制.
第2.2.2节底部的说明
在linux中,只需运行它,没问题.在Windows中,您希望使用pythonw可执行文件.
好的,如果我在评论中理解了这个问题,你就会问如何在命令行中启动机器人的命令窗口随后消失?
UNIX(Linux)
$ nohup mypythonprog&
视窗
C:/>启动pythonw mypythonprog
我认为这是对的.无论如何,现在你可以关闭终端了.
使用nohup mypythonprog &
,您可以在不中断过程的情况下关闭终端窗口.exit
如果您在云中运行并且不想保留挂起的shell进程,也可以运行.
使用.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而不会打开控制台窗口.
这将隐藏您的控制台。首先在代码中实现此行,以便首先开始隐藏控制台。
import win32gui, win32con The_program_to_hide = win32gui.GetForegroundWindow() win32gui.ShowWindow(The_program_to_hide , win32con.SW_HIDE)