使用pyinstaller打包,subprocess报“句柄无效”错误的解决方法
2019独角兽企业重金招聘Python工程师标准>>>
使用pyinstaller打包python程序,使用-w参数,去掉console,发现执行命令行的subprocess相关语句报“[ERROR] [WinError 6] 句柄无效”的错误。
去掉-w参数,将console显示的话,就正常。
我原本的语句是:
#用 subprocess.check_output获取adb devices命令运行的输出
deviceInfo = subprocess.check_output('adb devices').decode().split("\r\n")
这里需要获得命令的运行输出,试了好多方案,最终可行的方案是用subpross.Popen来替代subprocess.check_output,Popen函数加入如下参数:shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE
Popen方法执行命令,父进程不会等待子进程。这个时候需要用wait()方法来等待运行的结果。
这里用自己写的subprocess_check_output来替代subprocess.check_output 代码如下:
def subprocess_check_output(*args):p = subprocess.Popen(*args,shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)msg = ''for line in p.stdout.readlines():msg += line.decode()status = p.wait()return msgdeviceInfo = subprocess_check_output('adb devices').split("\r\n")
这样就解决了这个问题。
转载于:https://my.oschina.net/u/2396236/blog/1610765
使用pyinstaller打包,subprocess报“句柄无效”错误的解决方法相关推荐
- ueditor上传大容量视频报http请求错误的解决方法
故障现象: 当使用百度编辑器ueditor上传大容量视频或大容量图片的时候,编辑器报"http请求错误"的解决方法详解: 原因分析: 目前很多CMS整合了百度的ueditor编辑器 ...
- nodejs连接mysql报connect ECONNREFUSED错误的解决方法
通过AMH面板安装的mysql,用nodejs连接mysql时候结果报[connect ECONNREFUSED]连接错误. 解决方法:添加socketPath 有些mysql 安装的时候不是mysq ...
- 绑定句柄无效错误的解决办法
在使用VS2005写程序进行调试的过程中会出现"无法附加:绑定句柄无效.是否继续"的提示 .错误的原因就是你没有启动Terminal Services服务.只要启动这个服务就能解决 ...
- 西门子PLC(S7-1200、1500)通讯程序报16#80C8错误的解决方法
最近在用S7-1200做通讯实验,里面配置了1个TCP通讯.2个UDP通讯.1个MODBUS TCP SERVER. 开始时,只配置有一个通讯的时候,都能正常工作.后来,把这几个集成在一个程序里时,却 ...
- C#绑定句柄无效问题的解决方法
[学习点点滴滴] 心情好复杂.不知道该说啥好.还是先写哈这篇博客吧! 我重装了C# 不过当我在调试一个项目是.却弹出"试图运行项目时出错: 无法启动调试. C#绑定句柄无效.C#绑定句柄无 ...
- pyinstaller打包后读不到配置文件的解决方法
2019独角兽企业重金招聘Python工程师标准>>> pyinstaller打包好一个exe后,运行此exe,会把此文件解压缩到 C:\Users\xxxx\AppData\Loc ...
- [转载]IIS7报500.23错误的解决方法
原文出处: 原文作者:pizibaidu 原文链接:http://pizibaidu.blog.51cto.com/1361909/1794446 背景:今天公司终端上有一个功能打开异常,报500错误 ...
- Pyinstaller打包的exe文件过大的解决方法
Pyinstaller打包的exe文件过大怎么办? 相信经常用python的朋友都会面临这么一个问题,那就是想把自己写好的python程序打包给别人使用.有的人就会问了"打包"是什 ...
- 苹果刷机未知错误75_苹果iPhone6用iTunes刷机报错未知错误53解决方法
看点:iPhone X原装屏与国产屏有哪些区别? 看点:换7P.8P屏幕:C11和DTP和DKH的区别 狮淘:不锈钢拆机片5个只需9.9元!包邮!每天10名 关于因iPhone Touch ID损坏, ...
最新文章
- .NET判断字符串是否是数值型或xxx型
- Http Chunked Transfer Coding
- mysql第五章事务_mysql 第五章 备份恢复
- wxWidgets:wxHeaderCtrl类用法
- 【JLOI2013】地形生成
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 8丨平面上的最近距离【难度中等】
- 美发新造型 名家创意示范集锦(图)
- 故障码123401_P0221故障码故障原因和解决方法
- Linux课题实践一
- 2011年4月51CTO壁纸点评活动获奖名单【已结束】
- 01、微信公众平台简介及资料文档
- php如何查看端口有没被占用,如何查看某个端口被谁占用
- SPSS24.0输了授权码还不能用怎么破?
- MySQL下载安装新手教程
- 情境认知测量方法的研究
- hdu-2206 IP的计算
- hdu 5336 XYZ and Drops
- xcode 免cleanup build
- 免费离线语音识别sdk
- FlyBanner轮播图 和 XBanner轮播图
热门文章
- 9个常用iptables配置实例
- vlc学习计划(4)--在EMACS中使用GDB调试
- XSLT教程 [转]
- mac上mysql8.0以tar.gz方式手动安装
- Clusterware 和 RAC 中的域名解析的配置校验和检查 (文档 ID 1945838.1)
- PDO绑定含IN的SQL语句的参数注意事项
- BGP 最佳路径选择之 -- Origin
- linux内核模块的强制删除-结束rmmod这类disk sleep进程
- [译]ASP.NET Core 2.0 部分视图
- linux_OEL5.4_安装Oracle11g中文教程图解