赞
踩
[解决pyinstaller报错 ‘utf-8’ codec can’t decode byte 0xce in position 123: invalid continuation byte]
PyInstaller是一个功能强大的Python打包工具,它可以将Python程序转化为独立的可执行文件,并且能够在不同系统上运行。然而,在使用PyInstaller进行打包时,有时会遇到一些问题,其中之一便是 ‘utf-8’ codec can’t decode byte 0xce in position 123: invalid continuation byte 错误。
这个错误通常出现在Python程序中有非UTF-8编码字符时,例如GB2312、GBK等字符集。当PyInstaller打包程序时,它将会把你的Python文件编译成二进制文件,如果程序中存在非UTF-8编码字符,那么编译器会认为这是一个无效的续接字节。因此,导致了上述错误的出现。
解决这个问题的方法其实很简单,只需要在运行PyInstaller时加上一个参数即可:
pyinstaller --encoding=gbk yourscript.py
如果你的 Python 脚本中使用的字符集不是 GBK,你需要更换相应的字符集来解决问题。
除此之外,还有一种更复杂但是更全面的解决方案,就是手动添加hook文件。hook文件是用于告诉PyInstaller处理哪些模块的文件,以及如何处理这些模块的文件。我们可以在hook文件中加入以下内容:
# hook-charset.py
from PyInstaller.utils.hooks import collect_all
def hook(hook_api):
packages = [
"encoding
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。