首页 新闻 搜索 专区 学院

pyinstaller打包成exe运行报错utf-8 codec cant decode byte

0
悬赏园豆:200 [待解决问题]

代码:
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,无效。

疑问:
为啥不打包运行正常,打包后就报错

Ored的主页 Ored | 初学一级 | 园豆:6
提问于:2020-11-19 16:17
< >
分享
所有回答(2)
0

估计可能是不打包时,python解析器处理了编码问题
打包后,直接执行时使用的是windows默认的编码gb。 这样的话编码就不一样了

p = os.popen(cmd.encode('gb2312').decode('gb2312')) 采用这种强制指定编码估计可以解决

2012 | 园豆:19707 (专家六级) | 2020-11-20 08:24

感谢回答,试了下还是一样的现象 (´;︵;`)

支持(0) 反对(0) Ored | 园豆:6 (初学一级) | 2020-11-29 20:29
0

打包前,py文件先声明编码格式

# -*- coding: utf-8 -*-
xxxxx
xxxxx
xxxx
小小咸鱼YwY | 园豆:2078 (老鸟四级) | 2020-11-30 13:59

声明了的。。。

支持(0) 反对(0) Ored | 园豆:6 (初学一级) | 2020-12-04 08:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册