python3.7项目打包为一个exe
范同学昨晚发了我一个桌面宠物,是每次随机生成的,也有源码,自己改成了固定生成皮卡丘的,在重新编译 py 文件的时候遇到很多问题,记录一下(什么都比写作业好玩嘻嘻嘻)
1.安装 pyinstaller,在 https://github.com/pyinstaller/pyinstaller 下载develop版本,将其放到 python 的 site-package 文件夹下,再进入 pyinstaller 文件夹下
D:\Major\python3.7\Lib\site-packages\pyinstaller-develop 执行命令
pip uninstall pyinstaller #如果之前安装过pyinstaller,需要先卸载 python setup.py build python setup.py install
2.在安装完成之后,需要安装合适版本的 PyQT,有一些版本的会出错(安装的过程中会自动把其他版本的卸载,所以直接安装就行)
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQT5==5.9
3.安装完之后,还需要更新一下 setup_tools
pip3 install --upgrade setuptools --ignore-installed
4.开始打包程序
进入到项目文件夹内,主程序是 DesktopPet.py,还要用到 cfg.py,命令执行完毕后会生成 dist 和 build 文件夹,以及 DesktopPet.spec。-F 参数是只生成一个 exe,不然 dist 文件夹内会有很多依赖文件
pyinstaller -F DesktopPet.py cfg.py
5.先删掉 dist 和 build 文件夹,编辑 spec 文件
# -*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis(['DesktopPet.py', 'cfg.py'], pathex=['D:\\Major\\python3.7\\Lib\\site-packages\\PyQt5\\Qt\\bin','E:\\pikachu'], #添加一个PyQt的路径 binaries=[], datas=[('E:\\pikachu\\resources','resources')], #添加程序依赖的皮卡丘图片路径 hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='DesktopPet', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=False, #exe运行时不显示控制台 icon='E:\\pikachu\\pikachu.ico') #添加exe图标
6.再运行一次打包程序
pyinstaller -F DesktopPet.spec
7.生成的 exe 在 dist 文件夹内,再把 resources 文件夹复制到 dist 文件夹,exe 图标只有放大后才会显示
8.效果完美
参考:
https://blog.csdn.net/wq604887956/article/details/83750926