代码:
cmd = "ipconfig"
back_str = os.popen(cmd)
res = back_str.read()
未打包运行正常。
pyinstaller打包成exe后运行,第3行就报错(如图)
初步分析:
os.popen返回结果编码应该是gb2312,使用utf-8无法处理。
尝试 back_str .encoding=utf-8 后,再read,无效。
疑问:
为啥不打包运行正常,打包后就报错
估计可能是不打包时,python解析器处理了编码问题
打包后,直接执行时使用的是windows默认的编码gb。 这样的话编码就不一样了
p = os.popen(cmd.encode('gb2312').decode('gb2312')) 采用这种强制指定编码估计可以解决
感谢回答,试了下还是一样的现象 (´;︵;`)
打包前,py文件先声明编码格式
# -*- coding: utf-8 -*-
xxxxx
xxxxx
xxxx
声明了的。。。