开始的排错方向是字符编码方向,最后发现竟然是python写法导致,换一个写法就解决了。这是 'latin-1' codec can't encode characters in position 2748-2755这个错误最奇葩的一次处理经历。
问题截图
问题介绍
最近在写完一个独立的python3模式之后,想打包在pyd,总是莫名其妙地报错。
File "D:\miniconda3\envs\py37\lib\codecs.py", line 377, in write
data, consumed = self.encode(object, self.errors)
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 2748-2755: ordinal not in range(256)
不论问AI还是找资料,都给我从编码、汉字等方向查问题。
但最后我发现竟然是一个python代码写法问题
这个写法必然有打包Pyd报问题
video_inputs = ''.join([f'[v{i}]' for i in range(len(self.file_list))])
更换成以下则正常了
video_inputs = ''
for i in range(len(self.file_list)):
video_inputs += f'[v{i}]'
filter_complex.append(f"{video_inputs}concat=n={len(self.file_list)}:v=1:a=0[v]")
类似的表达式中for类型的,基本上都触发了UnicodeEncodeError: 'latin-1' codec
希望给正在爬坑的朋友带来一点启发,也可能你的原因就是字符编码而不是这个,原因不是唯一的。
本文《生成pyd报错UnicodeEncodeError: 'latin-1' codec can't encode characters in position 2748-2755:》由爱思考吧 isres.com 分享,转载请注明出处。本文网址:https://www.isres.com/php/characters-pyd.html
本站主要收集测评能够节省时间和提升效率的软件工具并分享使用与学习的过程和感受,任何情况下用户都需遵守所使用软件资源的相关协议。与《生成pyd报错UnicodeEncodeError: 'latin-1' codec can't encode characters in position 2748-2755:》有关的本站文章及资源仅供个人学习交流使用,相关资源请下载后24小时内删除,请勿用于其它用途,因此产生的任何问题由您自行承担。