问题:pyinstaller 使用-w打包后os.Popen()运行提示WindowsError:[Error 6]shell
网上搜索办法:测试
1.subprocess.Popen调用报异常:
当使用pyinstaller打成.exe文件安装后
使用p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
报WindowsError:[Error 6]异常
单独使用subprocess.check_output(cmd)一样报此异常。
奇怪的是,直接用源码测试执行时系统彻底没有任何问题。
后来才发现,当使用pyinstaller打包时,Popen应该以下初始化:spa
p = subprocess.Popen("cmd",shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
msg = ''
for line in p.stdout.readlines():
msg += line
status = p.wait()
惋惜很差使,仍是曲线救国吧,继续使用os.system,一开始没用是由于os.system默认阻塞当前程序执行,可是在cmd命令前加入start可不阻塞当前程序执行。以下code
import os os.system(r"start qq.exe")
这样至少当前程序执行没问题了,可是原问题仍是没解决,先记录一下,继续寻找答案吧,有热心大神能够给留言中留下解决办法。blog