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报“句柄无效”错误的解决方法相关推荐

  1. ueditor上传大容量视频报http请求错误的解决方法

    故障现象: 当使用百度编辑器ueditor上传大容量视频或大容量图片的时候,编辑器报"http请求错误"的解决方法详解: 原因分析: 目前很多CMS整合了百度的ueditor编辑器 ...

  2. nodejs连接mysql报connect ECONNREFUSED错误的解决方法

    通过AMH面板安装的mysql,用nodejs连接mysql时候结果报[connect ECONNREFUSED]连接错误. 解决方法:添加socketPath 有些mysql 安装的时候不是mysq ...

  3. 绑定句柄无效错误的解决办法

    在使用VS2005写程序进行调试的过程中会出现"无法附加:绑定句柄无效.是否继续"的提示 .错误的原因就是你没有启动Terminal Services服务.只要启动这个服务就能解决 ...

  4. 西门子PLC(S7-1200、1500)通讯程序报16#80C8错误的解决方法

    最近在用S7-1200做通讯实验,里面配置了1个TCP通讯.2个UDP通讯.1个MODBUS TCP SERVER. 开始时,只配置有一个通讯的时候,都能正常工作.后来,把这几个集成在一个程序里时,却 ...

  5. C#绑定句柄无效问题的解决方法

    [学习点点滴滴]  心情好复杂.不知道该说啥好.还是先写哈这篇博客吧! 我重装了C# 不过当我在调试一个项目是.却弹出"试图运行项目时出错: 无法启动调试. C#绑定句柄无效.C#绑定句柄无 ...

  6. pyinstaller打包后读不到配置文件的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> pyinstaller打包好一个exe后,运行此exe,会把此文件解压缩到 C:\Users\xxxx\AppData\Loc ...

  7. [转载]IIS7报500.23错误的解决方法

    原文出处: 原文作者:pizibaidu 原文链接:http://pizibaidu.blog.51cto.com/1361909/1794446 背景:今天公司终端上有一个功能打开异常,报500错误 ...

  8. Pyinstaller打包的exe文件过大的解决方法

    Pyinstaller打包的exe文件过大怎么办? 相信经常用python的朋友都会面临这么一个问题,那就是想把自己写好的python程序打包给别人使用.有的人就会问了"打包"是什 ...

  9. 苹果刷机未知错误75_苹果iPhone6用iTunes刷机报错未知错误53解决方法

    看点:iPhone X原装屏与国产屏有哪些区别? 看点:换7P.8P屏幕:C11和DTP和DKH的区别 狮淘:不锈钢拆机片5个只需9.9元!包邮!每天10名 关于因iPhone Touch ID损坏, ...

最新文章

  1. .NET判断字符串是否是数值型或xxx型
  2. Http Chunked Transfer Coding
  3. mysql第五章事务_mysql 第五章 备份恢复
  4. wxWidgets:wxHeaderCtrl类用法
  5. 【JLOI2013】地形生成
  6. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 8丨平面上的最近距离【难度中等】
  7. 美发新造型 名家创意示范集锦(图)
  8. 故障码123401_P0221故障码故障原因和解决方法
  9. Linux课题实践一
  10. 2011年4月51CTO壁纸点评活动获奖名单【已结束】
  11. 01、微信公众平台简介及资料文档
  12. php如何查看端口有没被占用,如何查看某个端口被谁占用
  13. SPSS24.0输了授权码还不能用怎么破?
  14. MySQL下载安装新手教程
  15. 情境认知测量方法的研究
  16. hdu-2206 IP的计算
  17. hdu 5336 XYZ and Drops
  18. xcode 免cleanup build
  19. 免费离线语音识别sdk
  20. FlyBanner轮播图 和 XBanner轮播图

热门文章

  1. 9个常用iptables配置实例
  2. vlc学习计划(4)--在EMACS中使用GDB调试
  3. XSLT教程 [转]
  4. mac上mysql8.0以tar.gz方式手动安装
  5. Clusterware 和 RAC 中的域名解析的配置校验和检查 (文档 ID 1945838.1)
  6. PDO绑定含IN的SQL语句的参数注意事项
  7. BGP 最佳路径选择之 -- Origin
  8. linux内核模块的强制删除-结束rmmod这类disk sleep进程
  9. [译]ASP.NET Core 2.0 部分视图
  10. linux_OEL5.4_安装Oracle11g中文教程图解