如何打包python應用(二)
對於python程式設計之後,除了在Python IDE中執行之外,可以將python的程式打包為python應用,直接在PC環境上執行。對於python打包目前有很多第三方庫檔案直接使用。在這裡主要介紹一下cx freeze和pyinstaller兩種
pyinstaller:
1. 安裝:
方法一:直接使用pip
pip install pyinstaller
方法二:下載原始碼安裝
在github中打包下載,解壓到電腦中,執行命令列進入此目錄。
//進入子目錄 bootloader
cd bootloader
//build the bootloader 執行
python ./waf configure build install
//重新進入根目錄
cd ..
//安裝pyinstaller
python setup.py install
2. pyinstaller打包:
python原始檔,路徑C:\Python33\Lib\site-packages\cx_Freeze\samples\eduactionData
包含六個原始檔(自己編寫的源程式程式碼)mainPage.py,creatDetailTable.py,creatTable.py,databaseOpetation.py,dataManager.py,dataManager.py
方法一:直接使用pyinstaller命令直接打包:
pyinstaller -F -w mainPage.py creatDetailTable.py creatTable.py databaseOpetation.py dataManager.py dataManager.py
方法二:使用指令碼命令打包:
pyinstaller makeApplication.spec
其中makeApplication.spec指令碼內容如下:
# -*- mode: python -*-
block_cipher = None
a = Analysis(['creatDetailTable.py', 'creatTable.py', 'databaseOpetation.py', 'dataManager.py', 'fileReader.py', 'fileSelectedWindow.py', 'mainPage.py', ],
pathex=['C:\\Python33\\Lib\\site-packages\\cx_Freeze\\samples\\education' ],
binaries=None,
datas=None,
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='education',
debug=False,
strip=False,
upx=True,
console=False )
3. 打包指令碼說明:
方法一說明:
-F :將可執行檔案和所需dll打包成一個可執行檔案,否則exe檔案會和其他dll檔案在同一路徑中。
-w :打包為window平臺檔案
方法二說明:
Analysis: 需要打包的原始檔
pathex: 原始檔路徑
EXE :可執行檔案相關資訊
4. 打包過程:
打包結果:
檔案目錄:
│ creatDetailTable.py
│ creatTable.py
│ databaseOpetation.py
│ dataManager.py
│ fileReader.py
│ fileSelectedWindow.py
│ mainPage.py
│ makeApplication.spec
│
├─build
│ └─makeApplication
│ base_library.zip
│ makeApplication.exe.manifest
│ out00-Analysis.toc
│ out00-EXE.toc
│ out00-PKG.pkg
│ out00-PKG.toc
│ out00-PYZ.pyz
│ out00-PYZ.toc
│ warnmakeApplication.txt
│
├─dist
│ education.exe
│
└─__pycache__
creatDetailTable.cpython-33.pyc
creatTable.cpython-33.pyc
databaseOpetation.cpython-33.pyc
dataManager.cpython-33.pyc
fileReader.cpython-33.pyc
fileSelectedWindow.cpython-33.pyc
mainPage.cpython-33.pyc
dist/ 目錄中education.exe為打包的可執行檔案
pycache/ 目錄為打包過程生成檔案
build/ 目錄也為打包過程生成檔案
5. 程式執行:
在win7系統上打包生成education.exe,在xp系統上也能正常執行