1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python 使用pyinstaller打包exe文件报错: TypeError: an integer is required (got type bytes) 的解决方法

Python 使用pyinstaller打包exe文件报错: TypeError: an integer is required (got type bytes) 的解决方法

时间:2023-12-10 14:19:59

相关推荐

Python 使用pyinstaller打包exe文件报错: TypeError: an integer is required (got type bytes) 的解决方法

python打包成exe文件首先需要安装pyinstaller库,再进入到目标文件目录,输入命令行打包py文件,但出现报错:TypeError: an integer is required (got type bytes) 。我的是python3.9,下面是出现问题到解决问题的过程:

目录

1. 安装pyinstaller库

2. 打包py文件

2.1 pyinstaller命令参数

2.2 将py打包成exe文件

3. 查找报错原因

3.1 替换安装pyinstaller

3.2 详看报错内容

3.3 注意exe图标应为.ico格式

4. 最终效果

1. 安装pyinstaller库

打开Win+R,输入cmd即可进入到终端Terminal。终端输入命令 pip install pyinstaller 安装库,安装后pip list 显示 PyInstallers 3.3.1版本。

pip install pyinstaller

2. 打包py文件

2.1pyinstaller命令参数

首先需要了解pyinstaller命令的参数,如:

pyinstaller -F -w -i demo.ico test.py

意思是对test.py文件打包成单个exe文件,并以根目录图片demo.ico生成exe图标,运行exe文件时禁止命令行弹窗。

2.2 将py打包成exe文件

然后进入到目标文件目录(我的是 E:\test\tree.py),执行打包命令 pyinstaller -F xx.py

e: #切换目录到E盘cd test #进入目标文件夹pyinstaller -F tree.py #对目标文件tree.py进行单个exe文件打包

但出现了报错:TypeError: an integer is required (got type bytes),打包失败。打包成功的标志是尾行显示 completed successfully, 同时在tree.py根目录下生成一些文件,其中dist文件夹下有exe文件,可以在任意地方(比如其他电脑)单独运行。

3. 查找报错原因

3.1 替换安装pyinstaller

虽然安装pyinstaller成功了,但安装过程还是有一些爆红的,便用其他方法替换安装pyinstaller,执行命令:

pip install /pyinstaller/pyinstaller/archive/develop.tar.gz

但没想到也出现报错:SyntaxError:Command errored out with exit status 1:

3.2 详看报错内容

仔细查看中间一段报错提示:

SyntaxError:(unicode error)'utf-8' codec can't decode byte 0xbe in position 0: invalid start byte

Error:Building wheels requires the 'wheel' package. Please 'pip install wheel' then try again

第一行SyntaxError 说的是编码错误,无法解码utf-8格式,网上查了一些资料表示可能默认的是GBK编码,需要下载原始文件修改源码,增加encoding='utf-8',比较麻烦;

第二行Error 说的是缺少wheel模块,可以安装wheel再尝试。决定选这种方法执行:

pip install wheel

安装wheel模块的时候可以看到,系统自动卸载了已安装的PyInstaller 3.3.1版本,通过pip list查看替换成了5.0.dev0 版本。

3.3 注意exe图标应为.ico格式

现在可以尝试打包py文件了,由于打算给exe文件自定义图标logo,我从阿里巴巴矢量图标库下载了一个图标的png格式文件,直接改后缀为.ico文件,执行命令:

pyinstaller -F -i tree.ico tree.py

但再次出现报错:struct.error: unpack requires a buffer of 16 bytes

查询得知原来是png格式的图标必须转换为.ico格式,不能强行改后缀,于是通过图片格式在线转换工具将图标转换成.ico格式。再次运行命令:pyinstaller -F -w -i tree.ico tree.py,成功了!

pyinstaller -F -w -i tree.ico tree.py

4. 最终效果

tree.py开始的目录:

打包exe文件后的目录,自动生成了很多文件:

exe文件就在dist文件夹里面:

双击运行tree.exe,看看效果:

尝试用其他电脑运行tree.exe,一切正常。太棒了!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。