平台怎么出黑 python封装exe可执行文件后屏蔽去除cmd黑色命令框解决方案
深恶痛绝网上代码抄来抄去,查看既浪费时间又耗费精力。请尊重编程总结的实战经验及成果,本人均为付费,若您赞赏就打赏观阅,若实在需要解决问题,可联系谢谢
摘要
最近更新时间:2020.08.20
本文类型:实际经验类(非知识讲解)
编写程序完成后,为了方便跨平台使用,会将程序转为exe可执行文件。但是封装后执行时,会弹出cmd黑框,在一定程度上影响使用。弹出cmd黑框分为两种:1.py文件运行产生的cmd黑框。2。编程时调用的函数或者命令产生的cmd黑框。一般第一种黑框比较好屏蔽,而第二种黑框就算使用的-w指令后依旧存在。
现总结封装后在不同情况下关闭cmd黑框的解决方法。本文封装使用库进行。提示:以下是本篇文章正文内容,下面案例可供参考
文章目录
一、安装库
相比较其他封装库,库优势比较明显。生成的exe文件,可以不依赖任何dll文件运行,便于移植。安装步骤如下:
(1)点击win10的开始菜单,直接输入cmd后右键管理员方式运行
(2)若安装时勾选了添加路径的选项,即可直接输入命令
pip
(若没有添加,建议卸载后,重新安装并勾选添加路径。慎重选择该建议,因为需要重新安装之前的下载的库)
(3)在网络连通下等待完成,若提示,则可尝试下面命令切换下载源,重新安装:pip -i
二、通过更改py后缀名或者打包命令的方式
可通过将py后缀名更改为pyw的方式,关闭封装exe后出现的cmd,这种方法可屏蔽py文件运行产生的cmd黑框,一般网上较为常见。
1、显示py文件后缀名
(1)文件的后缀名为.py,可以通过文件夹选项-查看-文件扩展名,显示文件后缀名,然后更改自己的py文件后缀名为pyw。
(2)后缀名更改前封装库指令: -F 测试.py
(3)后缀名更改后封装库指令: -F 测试.pyw
(4)其中"测试"为自己的文件名
(5)再次封装exe,等待完成后可发现cmd黑框消失。若仍存在cmd黑框,则检查程序中是否调用了产生cmd框的函数或者命令。具体请看第三章。
2、将py后缀更改为pyw
3、可直接修改打包命令
(2)更改前打包指令: -F 测试.py
(3)更改后打包指令: -F 测试.py -w (其中F为大写,w为小写)
三、更改程序的方式
一般在程序中使用了os.()函数调用其他外部exe,如cmd,ping,exe文件等,或者外部exe制作时带有cmd黑框,无论在打包时在命令中是否加入了-w,还是将文件后缀名改为.pyw,依旧会出现cmd黑框。现总结其他两种调用方式,代替os.()函数。
1、使用库中call函数
import subprocess
subprocess.call("调用的exe名字", creationflags=0x08000000)
其中=即为屏蔽命令。这种方式一般可用于直接调用外部exe文件,而当需要调用cmd或者ping等本身就是黑色框执行的命令时稍有不便,则可尝试第二种方法。
2、使用库中的Popen函数
举一个简单列子,若需要在10s内个IP地址,若一个一个去ping则需要大量时间。所以可以采用建线程的方式来实现同时个IP地址。那么问题来了,建立了200个线程,那电脑屏幕上岂不是要同时出现200个黑色命令框。对于电脑性能强悍,或者不在乎出现较多黑色命令框的大神请轻轻路过。本人电脑(i5-3210M,16G内存),同时运行时鼠标移动都是瞬移。那么该怎么办呢?为方便表达隐藏黑色命令框,只贴出线程run函数部分代码如下:
def run(self):
命令 = subprocess.Popen("ping "+ self.V_IP4 ,shell = True)
命令.wait()
self.读取PING结果()
if self.返回信息[3] != "超时":
self.读取PLC数据()
IP查询结果列表.append(self.返回信息)
使用.Popen()函数即可隐藏海量的黑色命令框,解救电脑于水火。若需要等待Popen()函数调用完毕后在往后执行,则需要使用 .wait() ,如代码中命令.wait()所示。
四、 构建EXE打包器,一键生成exe
--项目之EXE打包器
总结