范同學昨晚發了我一個桌面寵物,是每次隨機生成的,也有源碼,自己改成了固定生成皮卡丘的,在重新編譯 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