溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用pyinstaller打包Python

發(fā)布時(shí)間:2021-05-28 09:41:53 來(lái)源:億速云 閱讀:178 作者:小新 欄目:開(kāi)發(fā)技術(shù)

小編給大家分享一下如何使用pyinstaller打包Python,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、單個(gè)文件打包

1.1 簡(jiǎn)單打包

例如現(xiàn)在有一個(gè)main.py文件內(nèi)容如下

import os
print("hello world")
os.system("pause")

運(yùn)行結(jié)果如圖

如何使用pyinstaller打包Python

現(xiàn)在用一下命令打包成一個(gè)可執(zhí)行文件pyinstaller -F main.py

再同級(jí)目錄下生成一個(gè)dist文件夾里面就會(huì)生成一個(gè)可執(zhí)行文件,雙擊就可以執(zhí)行

如何使用pyinstaller打包Python

1.2 帶圖標(biāo)打包

有的時(shí)候?yàn)榱嗣烙^,可以給可執(zhí)行文件加一個(gè)圖標(biāo),這時(shí)用這個(gè)命令pyinstaller -F main.py-i filename.ico

打包完成后把這個(gè)ico文件復(fù)制到dst和可執(zhí)行文件一起就可以了

如何使用pyinstaller打包Python

二、項(xiàng)目多文件打包

上面只是一些簡(jiǎn)單的demo打包成可執(zhí)行文件的簡(jiǎn)單方式,大多數(shù)時(shí)候需要打包的都是多個(gè)文件的項(xiàng)目,這個(gè)時(shí)候就會(huì)復(fù)雜一些,主要使用一下命令進(jìn)行pyinstaller -D main.py -p other1.py -p other2.py [-w] -i flie.ico

對(duì)部分命令解釋:

命令作用
-F打包成一個(gè)exe文件,就是不管原文件時(shí)多少個(gè)最終生成只是一個(gè)exe可執(zhí)行文件,這種方式再大型項(xiàng)目中不適用,打開(kāi)程序太慢
-D以依賴的方式打包,類似于平時(shí)安裝工具的方式,會(huì)有一對(duì)的庫(kù)文件,一般項(xiàng)目建議這種方式
-p主文件以外其他用到的python文件
-w運(yùn)行程序的時(shí)候不顯示終端。如果不加的話就是做了UI界面,運(yùn)行的時(shí)候也會(huì)跳出終端,這個(gè)視情況決定
-i加載圖標(biāo)文件

這是部分用到的命令的解釋,還有其他命令可以上官網(wǎng)查看文檔查詢。

例程如下:

有個(gè)項(xiàng)目有4個(gè)Python文件運(yùn)行主程序效果如圖

如何使用pyinstaller打包Python

用此命令打包pyinstaller -D MysherTools.py -p BLC.py -p consistencyCheck.py -p ui.py -w -i .\inco\tool.ico

生成如圖所示的文件

如何使用pyinstaller打包Python

雙擊運(yùn)行exe可執(zhí)行文件效果如圖

如何使用pyinstaller打包Python

一般出現(xiàn)如上的提示,都是用到的靜態(tài)文件沒(méi)有放在指定路徑下,因?yàn)榇虬臅r(shí)候ico文件是放在icon目錄下,所以需要將這個(gè)目錄拷貝到可執(zhí)行文件的路徑下。放到指定位置后運(yùn)行正常如圖

如何使用pyinstaller打包Python

注意:文件用到的靜態(tài)文件一定要保證路徑正常,不然運(yùn)行會(huì)出錯(cuò)。

三、打包后文件太大

一般如果直接這么打包會(huì)導(dǎo)致打包后的文件特別大,這時(shí)候就需要?jiǎng)?chuàng)建一個(gè)虛擬環(huán)境,只安裝項(xiàng)目需要的庫(kù)文件,然后再打包,這樣就會(huì)小很多,因?yàn)閜ython環(huán)境下沒(méi)用到的庫(kù)也被打包進(jìn)去導(dǎo)致體積太大。

以上是“如何使用pyinstaller打包Python”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI