python打包成exe并隐藏控制台

windows系统下,在cmd中用命令

pyinstaller -F filename.py

可以将py文件打包成exe可执行文件,但运行时会出现一个黑色的控制台窗口,很难看。

pyinstaller还有一个参数 -w(注意区分大小写),据说可以打包出没有控制台的应用,但是我尝试的时候打包出来的exe无法运行,如图所示,原因还没搞清楚......

然后找了好久终于找到解决方案了(找不到原网址了,实在不好意思,如有原作者来认领,会自觉添加出处的~),如下,只要在代码中添加以下几行就好了(添加完之后打包的时候就不用加-w参数了):

import ctypes

whnd = ctypes.windll.kernel32.GetConsoleWindow()
if whnd != 0:
    ctypes.windll.user32.ShowWindow(whnd, 0)
    ctypes.windll.kernel32.CloseHandle(whnd)

 还有一点需要注意,其实这种方法是先打开控制台窗口,然后再关掉,因此会有一个黑黑的东西一闪而过,还是不尽如人意。但是不慌,如果你准备用setup factory吧你的应用打包成安装程序,只需要在里面设置以下文件属性就行:

 切换到“快捷方式”,把“运行模式”改成最小化窗口

 这样安装之后就不会有黑黑的窗口啦~


版权声明:本文为fcdm_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。