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

 

posted @ 2020-04-07 13:16  beiwo  阅读(918)  评论(0编辑  收藏  举报