pyinstaller打包Python程序為Windows下的exe執(zhí)行文件

什么情況需要python打包程序?

Python 程序的運行需要 python解釋器,若沒有安裝 python解釋器,那就無法運行 python程序。
但是當使用 Python程序的人不會使用命令執(zhí)行程序,或者也不會安裝 Python解釋器,又或者就是不想安裝那么多東西,就像點擊exe執(zhí)行的情況下,就需要將 Python 程序打包為 Windows下的 exe 程序了。

為了解決這種情況,Python程序的打包就很重要了,打包后的程序中集成了Python運行環(huán)境,這樣在沒有安裝Python解釋器的服務器上也就可以運行Python程序了。

Python 程序文件的打包方式

  • 使用 pyinstaller 工具進行打包。
  • 使用 py2exe 工具進行打包。

pyinstaller

1. 安裝 pyinstaller 模塊

運行下面命令

pip install pyinstaller

安裝pyinstaller

如上,顯示 Successfully installed 就是安裝成功了。

2. pyinstaller 打包單個簡單 python 文件

打包使用的命令為

pyinstaller -F python文件名

如何實際操作呢?首先,我們需要先寫一個 python 腳本。比如新建一個 test.py 文件,文件內(nèi)容如下:

# -*- coding:utf-8 -*-

print(123)
print('hello')
print("I'm a man")
print('''python is good!
I like python...''')

Pycharm 中直接右鍵運行,或者使用 Windows 自帶的 cmd 命令行運行 如下,確定腳本可以正常使用。

VS運行正常

Win運行正常

然后,用 Windows cmd 命令行進入腳本所在目錄, 執(zhí)行命令:pyinstaller -F test.py ,回車如下:

執(zhí)行過程1

執(zhí)行過程2

如上,打印出了一堆東西,信息最后提示了生成了一個 Windows應用程序 test.exe 文件。那讓我們來看下都生成了些什么。

test目錄
dist目錄

雙擊啟動,或者在 cmd 命令行啟動即可運行

雙擊運行
命令行運行

這個生成的 test.exe 文件有7M之多,實際的 test.py 腳本文件只有不到 1K。這是因為打包后的 test.exe 文件中包含了Python腳本運行的環(huán)境在里面。
這樣,你自己寫的 Python 腳本就可以直接發(fā)給其他人用了,即使不安裝 Python 環(huán)境也可以運行。

3. pyinstaller 打包多個 python 文件

既然是多文件打包,那首先我們來新建一個文件夾 test,然后在文件夾 test 中新建兩個文件 test.py、test2.py和文件夾 tool, 然后在 tool 文件夾中新建文件 test3.py。目錄樹狀圖和文件路徑展示如下:

image.png
image.png
image.png

三個文件夾中的內(nèi)容如下:

test.py

# -*- coding:utf-8 -*-

from test2 import my_add

print(my_add(20, 15))

test2.py

# -*- coding:utf-8 -*-

from tool.test3 import say_num

def my_add(x, y):
    z = x + y
    return say_num(x, y, z)

test3.py

# -*- coding:utf-8 -*-

def say_num(num1, num2, sum):
    return '{0} + {1} = {2}...'.format(num1, num2, sum)

接著,先運行程序,確認可以正常運行,如下:

測試運行

然后就可以使用 pyinstaller -F test.py test2.py tool/test3.py 命令進行打包了。如下:

執(zhí)行日志1
執(zhí)行日志2

如上圖所示,執(zhí)行成功后會在 dist 文件夾下面生成一個 test.exe 文件。這個就是打包好的文件。

4. pyinstaller通過配置文件打包

下面就來討論下,當打包的 Python項目腳本文件很多時,應該怎么做。

這第二種方法也是使用 pyinstaller 命令,但是 執(zhí)行的對象不同 。
還是用上述的 test 例子來說明。

首先,用 Windows cmd 命令行進入 test 腳本所在目錄, 執(zhí)行命令:pyinstaller -F test.py ,回車,此時會在 test 目錄下生成 builddist 文件夾, 還生成了 test.spec 文件,如下圖所示:

test目錄中生成的內(nèi)容

刪除 builddist 文件夾,保留文件 test.spec,并打開。這個文件是打包時的配置文件,現(xiàn)在我們來修改配置文件,然后使用配置文件進行打包。

打開后的文件內(nèi)容如下所示:


image.png

由于我們 test 程序沒有圖片、音樂、視屏等資源文件,所以這里只拿文件列表來說明。在 block_cipher = None 代碼后面添加一個腳本文件列表,然后用這個列表替換掉 Analysis()函數(shù)的第一個參數(shù)即可。如下所示修改內(nèi)容

添加文件列表

修改完后保存關(guān)閉文件,然后執(zhí)行打包命令:pyinstaller test.spec 回車,運行完后,一樣會在dist文件夾下面生成test.exe文件。在文件很多的情況下, 只需要將文件的相對路徑添加到.spec文件中即可。

\color{red}{值得注意的是:.spec 文件必須放在項目的根目錄下,即所有的項目文件必須在 .spec 文件所在的目錄中。}

上面就是我在使用時實際操作的記錄,作為筆記分享給你,也為了自己后續(xù)查看。

更多詳情參考官方網(wǎng)站


下一篇:py2exe打包Python程序為Windows下的exe執(zhí)行文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容