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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM