Pyinstaller解决打包名中文报错问题

之前用Pyinstaller打包时,用-n参数想把打包出来的程序名直接命名成中文,结果报UnicodeDecodeError。
网上查资料说的都是把打包名换成英文…
其实我之前也是这样做的…
然而时间久点后我就不开心了,每次打包都要改来改去麻不麻烦…
然后我就着报错信息直接看Pyinstaller的源代码,发现报错的代码在site-packages的
PyInstaller\utils\win32目录下的winmanifest.py内的1075行:(我的Pyinstaller版本是3.2.1)

with open(filename) as f:
    old_xml = f.read()

看见这代码就懂了,这是不支持utf-8啊,把它加上就行了:

with open(filename) as f:
	try:
		old_xml = f.read()
	except UnicodeDecodeError:
		with open(filename,encoding='utf-8') as f:
			old_xml = f.read()

因为是记事本方式打开的,要注意排版的时候不要用tab键,要用空格,不然加完会报另外的错。

你可能感兴趣的:(python)