Python如何生成可執行的 exe檔案

2021-09-29 20:50:31 字數 3000 閱讀 6684

為什麼要生成可執行檔案:

不需要安裝對應的程式設計環境

可以將你的應用閉源

使用者可以方便、快捷的直接使用

打包工具

pyinstaller

一.pyinstaller簡介

python是乙個指令碼語言,被直譯器解釋執行。它的發布方式:

.py檔案:對於開源專案或者原始碼沒那麼重要的,直接提供原始碼,需要使用者自行安裝python並且安裝依賴的各種庫。(python官方的各種安裝包就是這樣做的)

.pyc檔案:有些公司或個人因為機密或者各種原因,不願意原始碼被執行者看到,可以使用pyc檔案發布,pyc檔案是python直譯器可以識別的二進位製碼,故發布後也是跨平台的,需要使用者安裝相應版本的python和依賴庫。

可執行檔案:對於非碼農使用者或者一些小白使用者,你讓他裝個python同時還要折騰一堆依賴庫,那簡直是個災難。對於此類使用者,最簡單的方式就是提供乙個可執行檔案,只需要把用法告訴ta即可。比較麻煩的是需要針對不同平台需要打包不同的可執行檔案(windows,linux,mac,…)。

本文主要就是介紹最後一種方式,.py和.pyc都比較簡單,python本身就可以搞定。將python指令碼打包成可執行檔案有多種方式,本文重點介紹pyinstaller

二、pyinstaller的原理簡介

pyinstaller其實就是把python解析器和你自己的指令碼打包成乙個可執行的檔案,和編譯成真正的機器碼完全是兩回事,所以千萬不要指望成打包成乙個可執行檔案會提高執行效率,相反可能會降低執行效率,好處就是在執行者的機器上不用安裝python和你的指令碼依賴的庫。在linux作業系統下,它主要用的binutil工具包裡面的ldd和objdump命令。

pyinstaller輸入你指定的的指令碼,首先分析指令碼所依賴的其他指令碼,然後去查詢,複製,把所有相關的指令碼收集起來,包括python解析器,然後把這些檔案放在乙個目錄下,或者打包進乙個可執行檔案裡面。

需要注意的是,pyinstaller打包的執行檔案,只能在和打包機器系統同樣的環境下。也就是說,不具備可移植性,若需要在不同系統上執行,就必須針對該平台進行打包。

三、安裝pyinstaller

如果網路穩定,通常直接使用下面的命令安裝即可:

pip install pyinstaller
python setup.py install
在生成exe檔案後,無法正常執行exe檔案,可以嘗試下面這種安裝

檢查pyinstaller安裝成功與否:只需要執行如下命令其中乙個即可:

pyinstaller -

-version

pyinstaller -v

如果出現如下介面,就說明是安裝成功了

pyinstaller引數作用

-f 表示生成單個可執行檔案

-d –onedir 建立乙個目錄,包含exe檔案,但會依賴很多檔案(預設選項)

-w 表示去掉控制台視窗,這在gui介面時非常有用。不過如果是命令列程式的話那就把這個選項刪除吧

-c –console, –nowindowed 使用控制台,無介面(預設)

-p 表示你自己自定義需要載入的類路徑,一般情況下用不到

-i 表示可執行檔案的圖示

其他引數,可以通過pyinstaller --help檢視

四、開始打包

進入python需要打包的指令碼所在目錄,然後執行下面的命令即可:

pyinstaller -f test.py
帶ico圖示製作
pyinstaller -f -i ico_name.ico test.py
去dos視窗方法tkinter 工程 運用 pyinstaller 打包成exe,執行exe檔案的時候,會彈出乙個dos命令視窗,這個視窗可以看到一些列印資訊,如果想只執行tkinter 頁面,去掉dos視窗需要在打包的時候 加上 -w 引數

pyinstaller -f test.py -w
生成exe檔案後,開啟速度慢問題1.改用-d引數

pyinstaller -d test.py -w
2.使用 enigma virtual box 將資料夾壓縮成乙個exe檔案

執行過程如下圖所示:

五、打包結果

打包完成後,進入到當前目錄下,會發現多了__pycache__、build、dist、nhdz.spec這四個資料夾或者檔案,其中打包好的exe應用在dist目錄下面,進入即可看到,可以把他拷貝到其他地方直接使用,如下圖所示,是打包完成後的目錄:

六、執行exe應用

因為是exe應用,是可執行檔案了,所以直接雙擊執行即可,執行效果如下圖所示:

到這裡,exe檔案就已經生算是打包完成,並且可以執行了,如果你想在其他平台執行,只需要拷貝dist下面的檔案即可

最後,大家有什麼疑問或者想法,都可以直接和我交流,謝謝!

python生成可執行exe

1,打2015 補丁 例如,pip install matplotlib,pip install opencv python,pip install scikit learn pip install pyinstaller 編譯分兩步 第一,pyinstaller f x.py 會在同目錄下產生x....

Python 生成可執行檔案

準備 開發環境python3 首先需要安裝第三方庫 pyinstaller pip直接安裝庫如果遇到各種問題,戳這裡 接下來 從shell中進入cmd視窗 import os os.system cmd 在cmd視窗中輸入 pyinstaller c f main.py 注 main.py是main...

Python生成exe可執行檔案

f 表示生成單個可執行檔案 d onedir 建立乙個目錄,包含exe檔案,但會依賴很多檔案 預設選項 w 表示去掉控制台視窗,這在gui介面時非常有用。不過如果是命令列程式的話那就把這個選項刪除吧!c console,nowindowed 使用控制台,無介面 預設 p 表示你自己自定義需要載入的類...