亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

使用pyinstaller將python打包為exe

AnthonyHan / 4704人閱讀

摘要:起因是從某發(fā)現(xiàn)了一個(gè)站掛機(jī)助手,依賴(lài)于直播的一個(gè)庫(kù),作者的處理方式是將依賴(lài)的庫(kù)打包為,然后使用進(jìn)行調(diào)用。它能夠在等操作系統(tǒng)下將源文件打包,通過(guò)對(duì)源文件打包,程序可以在沒(méi)有安裝的環(huán)境中運(yùn)行,也可以作為一個(gè)獨(dú)立文件方便傳遞和管理。

起因是從某 hub 發(fā)現(xiàn)了一個(gè)B站掛機(jī)助手,依賴(lài)于直播的一個(gè)庫(kù),作者的處理方式是將依賴(lài)的庫(kù)打包為 exe,然后使用 python 進(jìn)行調(diào)用。

然后因?yàn)橐蕾?lài)的 live 庫(kù)版本太舊有 bug,作者也沒(méi)有更新打包的 exe 文件,只能自己動(dòng)手,進(jìn)行替換。

準(zhǔn)備工作

首先當(dāng)然是安裝 pyinstaller

pip install pyinstaller

PyInstaller 是一個(gè)十分有用的第三方庫(kù),可以用來(lái)打包 python 應(yīng)用程序,打包完的程序就可以在沒(méi)有安裝 Python 解釋器的機(jī)器上運(yùn)行了。

它能夠在 Windows、Linux、 Mac OS X 等操作系統(tǒng)下將 Python 源文件打包,通過(guò)對(duì)源文件打包, Python 程序可以在沒(méi)有安裝 Python 的環(huán)境中運(yùn)行,也可以作為一個(gè) 獨(dú)立文件方便傳遞和管理。

使用

一般的用法網(wǎng)上能搜出一大把,常規(guī)流程:

pyinstaller -F helloworld.py

其中,-F 表示打包成多帶帶的 .exe 文件,這時(shí)生成的 .exe 文件會(huì)比較大,而且運(yùn)行速度回較慢。

另外,
-i 還可以指定可執(zhí)行文件的圖標(biāo);
-w 表示去掉控制臺(tái)窗口,這在 GUI 界面時(shí)非常有用。不過(guò)如果是命令行程序的話(huà)那就把這個(gè)選項(xiàng)刪除吧!

執(zhí)行步驟:

1、在腳本目錄生成 helloworld.spec 文件; 
2、創(chuàng)建一個(gè) build 目錄;
3、寫(xiě)入一些日志文件和中間流程文件到 build 目錄;
4、創(chuàng)建 dist 目錄;
5、生成可執(zhí)行文件到 dist 目錄;
打包靜態(tài)文件

當(dāng)你的代碼需要調(diào)用一些圖片和資源文件的,這是不會(huì)自動(dòng)導(dǎo)入的,需要你自己手動(dòng)復(fù)制進(jìn)去才行。不然 exe 文件運(yùn)行時(shí)命令窗口會(huì)報(bào)錯(cuò)找不到這個(gè)文件。

還是先看常規(guī)做法;
使用 pyi-makespec 生成預(yù)處理文件:

pyi-makespec -F helloworld.py

此時(shí)會(huì)生成一個(gè) .spec 文件,這個(gè)文件會(huì)告訴 pyinstaller 如何處理你的腳本,pyinstaller 創(chuàng)建一個(gè) exe 的文件就是依靠它里面的內(nèi)容進(jìn)行執(zhí)行的。

修改預(yù)處理文件,將需要的靜態(tài)資源加入進(jìn)去:

// 修改前
datas=[]
// 修改后
datas=[("test.txt",".")]

最后,執(zhí)行生成 exe 文件:

pyinstaller helloworld.spec

以上內(nèi)容主要摘錄自 https://zhuanlan.zhihu.com/p/...


當(dāng)然,我沒(méi)那么幸運(yùn),按照一頓操作并沒(méi)有成功,對(duì)于預(yù)處理文件,上面寫(xiě)的也不是很清楚,于是研究了下,最終也算是成功了。

配置文件是不需要打包的,程序運(yùn)行時(shí)也會(huì)自動(dòng)讀取,根據(jù)錯(cuò)誤信息,我這個(gè)需要依賴(lài)的有兩個(gè) data.db 文件,經(jīng)過(guò)搜索分別在當(dāng)前目錄的 dyn 和 substance 文件夾下,所以你需要這么寫(xiě):

datas=[("dyndata.db", "dyn"), ("substancedata.db", "substance")]

解釋下,datas 是一個(gè)數(shù)組,每一個(gè)文件用 (a,b) 進(jìn)行描述,其中 a 是源文件,也就是你要打包的文件,記得轉(zhuǎn)義符;
b 是目標(biāo)路徑,也就是最終打包 exe 執(zhí)行時(shí),它需要把這些靜態(tài)資源解壓出來(lái),那么解壓到哪里呢就需要 b 來(lái)指定,它是一個(gè)文件夾,保險(xiǎn)起見(jiàn)我設(shè)置跟原來(lái)一樣的名字(路徑)。

如果靜態(tài)資源比較少的話(huà),可以使用命令行來(lái)快速打包:

pyinstaller -F showlist.py --add-data poetry;poetry --add-data list.txt;.

使用的是 --add-data 命令,后面跟源與目標(biāo)路徑,中間用分號(hào)分割,這種方式倒是不用轉(zhuǎn)義了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/43906.html

相關(guān)文章

  • python打包exe可執(zhí)行文件—Pyinstaller工具

    摘要:現(xiàn)在,主流的工具有,本文只介紹的使用。準(zhǔn)備工作開(kāi)發(fā)環(huán)境和工具可以支持和。 python是腳本語(yǔ)言,如果你在開(kāi)發(fā)機(jī)器上執(zhí)行當(dāng)然會(huì)很方便,可是如果你幫他人寫(xiě)了個(gè)腳本,想在他人機(jī)器上運(yùn)行,可能會(huì)遇到點(diǎn)困難。 為了讓腳本在他人機(jī)器上順利執(zhí)行,你首先要幫他安裝python解釋器,如果你import了一些庫(kù)比如pandas,那這個(gè)也需要安裝,甚至相關(guān)的依賴(lài)也需要安裝。這個(gè)時(shí)間成本顯然是很大的,這部...

    xiaoqibTn 評(píng)論0 收藏0
  • exe 文件反編譯成 Python 腳本

    摘要:打包成單文件所使用的命令為打包成文件夾所使用的命令為不管是哪種打包方式都會(huì)留下一個(gè)文件。這樣我們只需將腳本文件和腳本文件放置到同一文件夾下,運(yùn)行我們的腳本??梢钥吹揭呀?jīng)完美的反編譯出其中的腳本好了,相信大家已經(jīng)明白了反編譯的原理。 近期閱讀了一篇很感興趣的文章,為免后續(xù)文章被刪無(wú)法再閱讀,現(xiàn)...

    xbynet 評(píng)論0 收藏0
  • 了沒(méi)Python的小伙伴兒,我學(xué)會(huì)了程序打包?!颈D芳?jí)詳細(xì)教學(xué)】

    摘要:如果覺(jué)得安裝太慢,還可以加入國(guó)內(nèi)鏡像下載我比較習(xí)慣用豆瓣的。之前的文章有講過(guò)滴常用源鏡像清華阿里云中國(guó)科技大學(xué)華中理工大學(xué)山東理工大學(xué)豆瓣在里輸入打包成的命令。 ??導(dǎo)語(yǔ) 這篇文章是我之前很想寫(xiě)的,但是拖到了今天! 咳咳咳......主要是有粉絲讓我安排一下!寵粉.jpg 很多新手小伙伴兒...

    Java_oldboy 評(píng)論0 收藏0
  • 了沒(méi)Python的小伙伴兒,我學(xué)會(huì)了程序打包!【保姆級(jí)詳細(xì)教學(xué)】

    摘要:如果覺(jué)得安裝太慢,還可以加入國(guó)內(nèi)鏡像下載我比較習(xí)慣用豆瓣的。之前的文章有講過(guò)滴常用源鏡像清華阿里云中國(guó)科技大學(xué)華中理工大學(xué)山東理工大學(xué)豆瓣在里輸入打包成的命令。 ?導(dǎo)語(yǔ) 這篇文章是我之前很想寫(xiě)的,但是拖到了今天! 咳咳咳......主要是有粉絲讓我安排一下!寵粉.jpg 很多新手小伙伴兒是...

    Euphoria 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<