1. 程式人生 > >如何打包python應用(二)

如何打包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系統上也能正常執行

參考資源: