pyinstall **.py //直接打包
pyinstall -F **.py //打包成單文件
pyinstall -W **.py //去掉控制臺窗口,黑窗口
pyinstall -i ***.ico **.py //添加圖標 ***
首先需要生成spec文件,pyi-makespec -F test.py (如果要添加Icon等可以在這里就使用pyi-makespec --icon abc.jpg -F test.py語句生成spec文件)
您提供的配置文件是 PyInstaller 的 .spec
文件,用于指定如何打包您的 Python 腳本。以下是對該配置文件的詳細分析和解釋:
Analysis
部分
a = Analysis(
['E:\\桌面\\腳本\\報價計算器\\calculator_Tools_1.3.py',
'E:\\桌面\\腳本\\報價計算器\\sqlite3_db.py',
'E:\\桌面\\腳本\\報價計算器\\Export_mg.py',
'E:\\桌面\\腳本\\報價計算器\\pdf_gs.py'],
pathex=['E:\\桌面\\腳本\\報價計算器'],
binaries=[],
datas=[
('E:\\桌面\\腳本\\報價計算器\\resource\\logo.png', 'resource'),
('E:\\桌面\\腳本\\報價計算器\\resource\\seal.png', 'resource'),
('E:\\桌面\\腳本\\報價計算器\\resource\\simhei.ttf', 'resource'),
],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
參數解釋
-
scripts
:- 這是一個列表,包含了所有需要打包的 Python 腳本文件的路徑。
- 示例中包含了四個腳本文件:
calculator_Tools_1.3.py
,sqlite3_db.py
,Export_mg.py
,pdf_gs.py
。
-
pathex
:- 這是一個列表,指定了搜索模塊的路徑。
- 示例中指定了一個路徑:
'E:\\桌面\\腳本\\報價計算器'
。
-
binaries
:- 這是一個列表,用于指定需要包含的二進制文件。
- 示例中為空列表,表示沒有額外的二進制文件需要包含。
-
datas
:- 這是一個列表,用于指定需要包含的數據文件及其目標目錄。
- 示例中包含三個數據文件:
-
'E:\\桌面\\腳本\\報價計算器\\resource\\logo.png'
->'resource'
-
'E:\\桌面\\腳本\\報價計算器\\resource\\seal.png'
->'resource'
-
'E:\\桌面\\腳本\\報價計算器\\resource\\simhei.ttf'
->'resource'
-
-
hiddenimports
:- 這是一個列表,用于指定需要隱式導入的模塊。
- 示例中為空列表,表示沒有額外的隱式導入模塊。
-
hookspath
:- 這是一個列表,用于指定自定義掛鉤(hooks)的路徑。
- 示例中為空列表,表示沒有自定義掛鉤。
-
hooksconfig
:- 這是一個字典,用于配置掛鉤。
- 示例中為空字典,表示沒有額外的掛鉤配置。
-
runtime_hooks
:- 這是一個列表,用于指定運行時掛鉤的路徑。
- 示例中為空列表,表示沒有運行時掛鉤。
-
excludes
:- 這是一個列表,用于指定需要排除的模塊。
- 示例中為空列表,表示沒有需要排除的模塊。
-
noarchive
:- 這是一個布爾值,用于指定是否將純 Python 模塊存儲在歸檔文件中。
- 示例中為
False
,表示將純 Python 模塊存儲在歸檔文件中。
-
optimize
:- 這是一個整數,用于指定優化級別。
- 示例中為
0
,表示不進行優化。
PYZ
部分
pyz = PYZ(a.pure)
參數解釋
-
a.pure
:- 這是一個包含純 Python 模塊的列表。
-
PYZ
對象將這些模塊打包成一個歸檔文件。
EXE
部分
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='萬超智能報價系統',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon='E:\\桌面\\腳本\\報價計算器\\resource\\my_icon.ico'
)
參數解釋
-
pyz
:- 這是
PYZ
對象,包含了純 Python 模塊的歸檔文件。
- 這是
-
a.scripts
:- 這是一個列表,包含了所有需要打包的 Python 腳本文件的路徑。
-
a.binaries
:- 這是一個列表,包含了所有需要包含的二進制文件。
-
a.datas
:- 這是一個列表,包含了所有需要包含的數據文件及其目標目錄。
-
[]
:- 這是一個空列表,用于保留位置參數。
-
name
:- 這是生成的可執行文件的名稱。
- 示例中為
'萬超智能報價系統'
。
-
debug
:- 這是一個布爾值,用于指定是否啟用調試模式。
- 示例中為
False
,表示不啟用調試模式。
-
bootloader_ignore_signals
:- 這是一個布爾值,用于指定引導加載程序是否忽略信號。
- 示例中為
False
,表示引導加載程序不會忽略信號。
-
strip
:- 這是一個布爾值,用于指定是否剝離可執行文件中的調試符號。
- 示例中為
False
,表示不剝離調試符號。
-
upx
:- 這是一個布爾值,用于指定是否使用 UPX 壓縮可執行文件。
- 示例中為
True
,表示使用 UPX 壓縮。
-
upx_exclude
:- 這是一個列表,用于指定不需要使用 UPX 壓縮的文件。
- 示例中為空列表,表示沒有需要排除的文件。
-
runtime_tmpdir
:- 這是一個字符串,用于指定運行時臨時目錄的路徑。
- 示例中為
None
,表示使用默認的臨時目錄。
-
console
:- 這是一個布爾值,用于指定生成的可執行文件是否顯示控制臺窗口。
- 示例中為
False
,表示不顯示控制臺窗口。
-
disable_windowed_traceback
:- 這是一個布爾值,用于指定是否禁用窗口化模式下的回溯信息。
- 示例中為
False
,表示不禁用回溯信息。
-
argv_emulation
:- 這是一個布爾值,用于指定是否啟用
argv
模擬。 - 示例中為
False
,表示不啟用argv
模擬。
- 這是一個布爾值,用于指定是否啟用
-
target_arch
:- 這是一個字符串,用于指定目標架構。
- 示例中為
None
,表示使用默認架構。
-
codesign_identity
:- 這是一個字符串,用于指定代碼簽名的身份。
- 示例中為
None
,表示不進行代碼簽名。
-
entitlements_file
:- 這是一個字符串,用于指定權限文件的路徑。
- 示例中為
None
,表示沒有權限文件。
-
icon
:- 這是一個字符串,用于指定可執行文件的圖標路徑。
- 示例中為
'E:\\桌面\\腳本\\報價計算器\\resource\\my_icon.ico'
。
總結
這個 .spec
文件配置了 PyInstaller 如何打包您的 Python 腳本和相關資源文件。通過這些配置,PyInstaller 將生成一個名為 萬超智能報價系統
的可執行文件,并包含所需的腳本、數據文件和圖標。希望這能幫助您理解配置文件的內容和作用。如果有任何進一步的問題,請隨時告訴我。