当前位置:   article > 正文

[解决pyinstaller报错 ‘utf-8‘ codec can‘t decode byte 0xce in position 123: invalid c...

[解决pyinstaller报错 ‘utf-8‘ codec can‘t decode byte 0xce in position 123: invalid c...

[解决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
  • 1

如果你的 Python 脚本中使用的字符集不是 GBK,你需要更换相应的字符集来解决问题。

除此之外,还有一种更复杂但是更全面的解决方案,就是手动添加hook文件。hook文件是用于告诉PyInstaller处理哪些模块的文件,以及如何处理这些模块的文件。我们可以在hook文件中加入以下内容:

# hook-charset.py
from PyInstaller.utils.hooks import collect_all

def hook(hook_api):
    packages = [
        "encoding
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/539665
推荐阅读
相关标签
  

闽ICP备14008679号