pyinstaller打包带有player模块的文件报编译器错误

pyinstaller打包一个文件,由于项目用到了player模块,所以使用了:pyinstaller -F -w C:\Users\93133\Desktop\dist\main.exe --hidden-import plyer.platforms.win.notification的打包指令。但是报错了:

img


网上寻找无果。
最后一行报错信息为
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 2: invalid start byte

这个错误通常是由于 PyInstaller 无法在打包过程中正确解码文件名或其他文本信息导致的。

在打包过程中,PyInstaller 需要读取和解码许多文件,包括模块、资源文件等。如果这些文件的编码不是 utf-8,那么 PyInstaller 就可能会报错。

为了解决这个问题,你需要确保所有文件都使用 utf-8 编码,或者在打包时指定正确的编码方式。你可以使用 --encoding 参数来指定编码方式,例如:

pyinstaller -F -w C:\Users\93133\Desktop\dist\main.exe --hidden-import plyer.platforms.win.notification --encoding cp1252

其中 cp1252 是 Windows 下常用的一种编码方式。你也可以使用其他编码方式,如 gbk 或 iso-8859-1 等。

你还可以尝试使用 --noupx 参数禁用 UPX 压缩工具,这有时也可以解决类似的问题。

希望这些建议能帮助你解决问题。

在打包 Python 程序时遇到 UnicodeDecodeError 错误通常是由于解码文件时出现了错误。可能是由于文件中包含了非法字符或者是由于文件的编码方式不正确。

建议检查一下要打包的 Python 程序和所有依赖的文件,确保其中没有非法字符或者编码错误。也可以试试使用不同的编码方式 (如 gbk 或 latin-1) 来解码文件。

检查文件的编码方式:

import chardet

with open(filename, 'rb') as f:
    encoding = chardet.detect(f.read())['encoding']