把 Python 腳本打包成可以直接雙擊運行的 .exe 文件 【轉】


  因為最近要用到 Python 腳本,所以自己學習了一下,順便學習如何把它打包成 .exe 可執行文件,達到雙擊運行的效果,網上找了資料,保存下來學習用,原文出處:https://baijiahao.baidu.com/s?id=1606400855559470971&wfr=spider&for=pc

  大家都知道,Python是一種腳本語言,也就是解釋型的語言,需要解釋器來進行解釋以后才可以執行,而Python源代碼需要在Python虛擬機上面運行,但是我們做好的程序,不可能給用戶使用的時候還讓他安裝一個Python環境,所以今天我們講解如何將Python程序打包為exe可執行文件。提示: 以下的教程都是再有Python環境的基礎上的,如果沒有安裝,請先參考:Python安裝以及環境變量配置

  

一、安裝pyinsatller

  打開命令行窗口,輸入如下指令:

                pip3 install pyinstaller

  然后靜待pyinstaller自動安裝好

  此外還要安裝好 win32api ,可以用命令 pip install pypiwin32pip3 install pypiwin32  或 python -m pip install pypiwin32 直接下載安裝,如果沒有安裝好這個,生成的exe文件的時候,會報錯,是無法生成 .exe 文件的,此外還要注意win32api的版本要跟你的Python編譯器的版本一致,不然安裝 win32api 時會找不到 python 注冊表

二、使用pyinstaller打包Python程序

  ①在你的Python程序文件夾上(不點進去)按住shift並且右鍵,在彈出的選項中點擊"在此處打開命令行窗口"或者“在此處打開PowerShell窗口” 或者先進入命令行窗口,然后使用cd指令進入程序文件夾

  

  ②輸入以下指令,開始打包

              pyinstaller -F (-i icofile) -w  filename

  filename表示你的Python程序文件名

  -w 表示隱藏程序運行時的命令行窗口(不加-w會有黑色窗口)

  括號內的為可選參數,-i icofile表示給程序加上圖標,圖標必須為.ico格式

  icofile表示圖標的位置,建議直接放在程序文件夾里面,這樣子打包的時候直接寫文件名就好

 

  個人實操說明:這里我實際操作的時候添加圖標就無法生成,不加圖標按下面的命令生成就可以,具體原因待以后補充

  

  如果我要添加圖標就報下圖的錯誤,這里我已經安裝好了WIN32api了的,具體造成錯誤原因沒還沒找到

  

 

補充:

  上面說的無法生成 ico 圖標問題,已經解決,測試是因為我的文件名后綴沒有輸入,要先生成 ico 圖標,再生成 exe 運行程序的,測試指令如下

  

 

  輸入完成,按回車,就會開始自動打包了,第一次打包過程可能比較緩慢

 

  輸入示例:

      pyinstaller -F-i tello.ico -w love.py

 

  然后我們進入到程序目錄里面會再看到一個名稱為dist目錄,打包好的exe程序就在里面

  

  注意:如果原本的程序中使用到了相應的資源,需要復制到該目錄下,否則程序會無法運行

  比如我這里在程序中使用到了love.png這個圖,所以就需要將該文件放到dist目錄下

 

 

最后補充一個 pyinstaller 的各個參數表

  

參數 含義
-F 指定打包后只生成一個exe格式的文件
-D –onedir 創建一個目錄,包含exe文件,但會依賴很多文件(默認選項)
-c –console, –nowindowed 使用控制台,無界面(默認)
-w –windowed, –noconsole 使用窗口,無控制台
-p 添加搜索路徑,讓其找到對應的庫。
-i 改變生成程序的icon圖標

 

關於有圖片音頻文件時打包成 exe 的補充:

  對於程序里引用了圖片跟音頻的python,打包之后會出現閃退情況,或者打開exe文件失敗的情況,這時候只要把程序里的圖片引用路徑改為絕對路徑,並在前面加 r 即可,如下所示:  

background_1 = pygame.image.load(r'E:\Work_file\Python_test\no.jpg').convert()

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM