1. 程式人生 > >用Pyinstaller把Python3.4程式打包成可執行檔案exe

用Pyinstaller把Python3.4程式打包成可執行檔案exe

最近在學Python語言,照著書上一個用Pygame的例子寫了一個遊戲程式,想把它打包出來,在網上找了很多帖子,但在實際過程中還是遇到了很多問題,所以做個筆記,備忘:

  • Windows7 64位作業系統
  • Python3.4 64位
  • pygame1.9.3 64位

——————-`

pip

pip 是一個安裝Python包的工具, 一般是在Python安裝目錄下的Scripts資料夾裡。如果電腦上有pip,開啟CMD視窗,進入pip所在目錄,或者把這個目錄新增到環境變數,輸入

pip list

就可以看到已經安裝的Python包
這裡寫圖片描述
如果電腦上沒有,可以到網上下載一個,連結

https://pypi.python.org/pypi/pip
這裡寫圖片描述
下載完成之後,解壓到一個資料夾,用CMD控制檯進入解壓目錄,輸入:

python setup.py install

等待完成安裝即可。

Pyinstaller

Pyinstaller是一個用來打包程式的模組,需要到官網下載,下載連結http://www.pyinstaller.org/downloads.html
這裡寫圖片描述
當前版本支援的Python版本,以及如何安裝,在官網上都有介紹。
下載下來之後解壓,用CMD進入解壓目錄,輸入

pip install pyinstaller
pip install
distribute

如果缺少setuptools、pywin32,同樣下載安裝。
如果依然報錯,試試輸入這個

pip3 install pyinstaller

本人親測有用。

打包

將所要打包的程式(即.py檔案和引用的資原始檔)放在一個資料夾裡,用CMD進入這個目錄,輸入

pyinstaller -F -w XXX.PY

XXX.py即有程式入口的那個檔案。
等待打包完成,會生成一個build資料夾和一個dist資料夾,exe可執行檔案就在dist資料夾裡,如果程式引用有資源,則要把資原始檔放在這個exe正確的相對目錄下。

如果打包出錯,可以參考build資料夾裡的warnXXX.txt檔案,這個檔案記錄了一些警告資訊,僅供參考,並不一定能在裡面找出錯誤。
根據官方文件的說法,應該先打包成單資料夾的形式,也許比單檔案更能找出錯誤,即使用

pyinstaller -D -w XXX.py

命令進行打包。
我的exe執行出錯,然後我使用了Visual studio進行除錯,它告訴我pygame.font.pyd出錯,即pygame下字型模組加載出錯,於是我下載一些.ttf格式的字型檔案,然後把程式裡面用到字型的地方改成

pygame.font.Font('XXX.ttf', 40)

但是這並沒有解決我的問題,最後搞了半天才發現是資源路徑不對,一定要檢查exe檔案與資原始檔的相對路徑!!!

最後的最後,我終於把我的程式打包成了exe,成功執行。
這裡寫圖片描述