国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用pyinstaller將python打包為exe

AnthonyHan / 4440人閱讀

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

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

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

準(zhǔn)備工作

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

pip install pyinstaller

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

它能夠在 Windows、Linux、 Mac OS X 等操作系統(tǒng)下將 Python 源文件打包,通過對(duì)源文件打包, Python 程序可以在沒有安裝 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í)非常有用。不過如果是命令行程序的話那就把這個(gè)選項(xiàng)刪除吧!

執(zhí)行步驟:

1、在腳本目錄生成 helloworld.spec 文件; 
2、創(chuàng)建一個(gè) build 目錄;
3、寫入一些日志文件和中間流程文件到 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)然,我沒那么幸運(yùn),按照一頓操作并沒有成功,對(duì)于預(yù)處理文件,上面寫的也不是很清楚,于是研究了下,最終也算是成功了。

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

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)資源解壓出來,那么解壓到哪里呢就需要 b 來指定,它是一個(gè)文件夾,保險(xiǎn)起見我設(shè)置跟原來一樣的名字(路徑)。

如果靜態(tà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://m.specialneedsforspecialkids.com/yun/43906.html

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

0條評(píng)論

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