日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

exe解包和重新打包_pyinstaller打包的exe太大?你需要嵌入式python玄学 前提篇

發(fā)布時(shí)間:2024/10/8 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 exe解包和重新打包_pyinstaller打包的exe太大?你需要嵌入式python玄学 前提篇 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

pyinstaller打包一個(gè)exe動(dòng)輒幾十M幾百M(fèi) (特別是import pandas以后)

知乎上居然沒有人po這方面的”知識(shí)“(手動(dòng)狗頭)

查了很多關(guān)于reduce pyinstaller打包出exe大小的方法

列舉如下

玄學(xué)解法1 去除不必要的庫(kù)

當(dāng)我們用cmd/powershell 輸入這一段神秘代碼并且回車的時(shí)候

pyinstaller除了會(huì)打包test.py使之成為一個(gè)exe之外,還會(huì)創(chuàng)建一的后綴名為 .spec 的文件

長(zhǎng)這樣

打開以后大概是這個(gè)樣子

注意選中的這一行

然后就可以愉快的在第13行的"[]"里面輸入自己不需要的庫(kù)啦

然后輸入這樣的代碼重新打包自己的exe

pyinstaller --clean -F test.spec

不嫌麻煩的話一開始也可以這么寫:

pyinstaller --clean -F test.py --exclude-module matplotlib ^ ......(此處省略)

ps:像requests這些庫(kù)啊 是和urllib有關(guān)聯(lián)的 這也就是為什么 exclude urllib可能會(huì)有錯(cuò)誤產(chǎn)生的原因啦

原文:

Python: Excluding Modules Pyinstaller?stackoverflow.com

玄學(xué)解法2 共享依賴

package multiple exe(s) sharing the same dependencies:Using Spec Files

意思大概是打包多個(gè)exe用同一個(gè)”依賴庫(kù)“ [不懂裝懂,我也沒試過 再次狗頭]

有興趣的同學(xué)可以去看一下

原文:

Importing Python modules from a select location?stackoverflow.com

玄學(xué)解法3 虛擬環(huán)境

pyinstaller喜歡把沒用的庫(kù)一起打包進(jìn)來

腦洞大開的程序猿(媛)們豈會(huì)輕易妥協(xié)?

我的python環(huán)境(虛擬)沒有這些庫(kù) 我看你怎么打包!

首先呢 我們需要一位名為virtualenv的同學(xué)幫助我們創(chuàng)建一個(gè)干凈的python虛擬環(huán)境

有請(qǐng)!!

pip install virtualenv

然后要做的工作當(dāng)然就是創(chuàng)建一個(gè)虛擬環(huán)境啦

virtualenv example_env # 命名請(qǐng)隨意

創(chuàng)建完成以后我們就會(huì)在python的Script文件夾里發(fā)現(xiàn)一個(gè) 與剛剛命名相同的文件夾

用cmd cd 到虛擬環(huán)境的Script目錄然后 輸入activate回車

ps: Win10下 當(dāng)?shù)诙问褂么谁h(huán)境報(bào)錯(cuò)時(shí) 應(yīng)該用管理員模式打開powershell提權(quán):
錯(cuò)誤信息:
.activate : 無法加載文件 H:envprojectvenvScriptsactivate.ps1,因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本。有關(guān)詳細(xì)信息,請(qǐng)參閱 https:/http://go.microsoft.com/fwlink/?LinkID=135170中的 about_Execution_Policies。所在位置 行:1 字符: 1
解決辦法:
1.以管理員身份打開PowerShell
2.執(zhí)行命令set-executionpolicy remotesigned

就可以開始愉快地pip安裝必要模塊 然后pyinstaller啦

原文:

How can I create the minimum size executable with pyinstaller??stackoverflow.com

想在Pycharm等IDE中使用這個(gè)環(huán)境?

Python創(chuàng)建virtualenv(虛擬環(huán)境)方法?www.cnblogs.com

玄學(xué)解法4 UPX壓縮大法

pyinstaller一直被人詬病以后自己也在反省為什么自己的工作質(zhì)量竟然···

然后人家就給了補(bǔ)救方法:開源的upx壓縮

the Ultimate Packer for eXecutables?upx.github.io

并且在自己的打包代碼里留給了upx一席之地(雖然把upx扔到Script目錄里會(huì)默認(rèn)使用 但是有和沒有就是兩碼事對(duì)吧 upx:我也要面子的)

什么?還是會(huì)被罵? upx:這不怪我 我不背鍋

雖然使用upx打包時(shí)間會(huì)長(zhǎng)一些 但是為了縮小占用面積 為用戶省下少得可憐的流量(加粗表示對(duì)國(guó)產(chǎn)三大運(yùn)營(yíng)商的尊敬 傾斜烘托了令人哽咽的氛圍) 為了這個(gè)可以忍!

upx在壓縮:

Users/xxx/ 文件夾名字被我p掉了 下同

但但但但但但是 報(bào)錯(cuò)是什么鬼?(可能是我臉黑或者是寫的程序里有upx不認(rèn)的代碼 不代表全部)

What the f**k?等了這么久就給我這個(gè)報(bào)錯(cuò)窗口?

google了一大頓也沒發(fā)現(xiàn)什么正確的解法 所以就....干脆放棄

[19/8/10補(bǔ)充] 有熱心的知友在評(píng)論區(qū)po了解決方法 upx還是很好用滴


以上四種[常規(guī)]操作呢 我還是喜歡第三種 錯(cuò)誤少見效快 再次但是! ——

現(xiàn)在是時(shí)候有請(qǐng)老大哥python-embedded出場(chǎng)了

既然pyinstaller不聽話 為什么不請(qǐng)出python-embedded來整治整治它呢?

python-embedded:在我面前你們都是渣渣

下一期我們介紹嵌入式python開發(fā) 代替pyinstaller

總結(jié)

以上是生活随笔為你收集整理的exe解包和重新打包_pyinstaller打包的exe太大?你需要嵌入式python玄学 前提篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。