Pyinstaller使用筆記

首先需要使用以下命令生成spec文件:

pyi-makespec main.py   ## 生成main.spec

打開生成main.spec文件,詳解如下:

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(['src\\main.py'],        ### 工程入口文件
             pathex=['src\\module1.py', 'src\\module2.py'],   ### 工程裏其他的相關的py文件都放在這裏
             binaries=[],
             datas=[],         ### 在打包時希望拷貝到生成的文件下的內容,可以時庫文件,也可以時各種資源文件,每個元素格式爲: ("當前資源路徑", "拷貝後資源路徑(相對路徑)")
             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,
          [],
          exclude_binaries=True,
          name='main',      ### 生成的可執行文件名字
          debug=False,      ### 是否設置爲調試模式
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True,       ### 是否需要控制檯
          icon='test.icon')   ### exe文件的圖標
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               upx_exclude=[],
               name='main')   ###打包後的文件夾名字

然後執行:

pyinstaller -F main.spec

會生成兩個文件夾,build和dist。build文件夾似乎沒什麼用,生成核心內容在dist文件夾下。

容易發生的錯誤及解決方法:

  1. failed to execute script
    這個錯誤需要設置爲調試模式,然後在控制檯運行生成的exe文件方可確定。可根據具體報錯log檢查爲什麼失敗。設置調試模式的方法時在spec文件中將debug的值改爲True

  2. 設置的圖標顯示失敗
    需要時icon格式的圖標,而且系統對可執行文件圖標的大小有要求,需要將圖標大小轉換爲系統支持的大小

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章