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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

python

怎么把python程序发给别人_想把你写的Python程序发给别人用?打包成exe啊!

發(fā)布時(shí)間:2023/12/15 python 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么把python程序发给别人_想把你写的Python程序发给别人用?打包成exe啊! 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

大家好,歡迎來(lái)到編程教室!

當(dāng)你學(xué)了一段時(shí)間Python,終于寫(xiě)出一個(gè)小游戲的時(shí)候,是不是很想發(fā)給你的小伙伴分享一下你的成果?但是,如果直接將xx.py文件發(fā)給別人,別人通常是不能直接運(yùn)行的,他還需要安裝python解釋器,甚至還要安裝我們用到的第三方包,是不是有點(diǎn)小麻煩?

不過(guò)PC可以運(yùn)行exe文件,這就為我們提供了一個(gè)變通的途徑:將Python程序打包成exe文件。這樣,對(duì)方就不需要自己配置Python環(huán)境,直接運(yùn)行exe文件即可。

Python本身并沒(méi)有提供這個(gè)功能,所以需要借助一些外部庫(kù)來(lái)實(shí)現(xiàn)。之前我們?cè)?jīng)介紹過(guò)一個(gè)方式:

文章中使用了cx_freeze這個(gè)模塊。今天我們?cè)俳榻B另一個(gè)工具:pyinstaller,也可以達(dá)到同樣的效果。因?yàn)榇虬黣xe過(guò)程中常會(huì)出現(xiàn)問(wèn)題,所以兩種方案也可以互為補(bǔ)充。

PS:打包exe時(shí),版本盡量選擇32位版本的Python,因?yàn)閣in64位系統(tǒng)向下兼容32位程序。另外切記使用的模塊版本一定要和Python版本嚴(yán)格一致,不然很可能打包失敗。

安裝pyinstaller

首先安裝pyinstaller,使用安裝命令:pip3 install pyinstaller,如下圖所示。

pyinstaller打包機(jī)制

我們寫(xiě)的python腳本是不能脫離python解釋器單獨(dú)運(yùn)行的,所以在打包的時(shí)候,至少會(huì)將python解釋器和腳本一起打包,同樣,為了打包的exe能正常運(yùn)行,會(huì)把我們所有安裝的第三方包一并打包到exe。

即使我們的項(xiàng)目只使用的一個(gè)requests包,但是可能我們還安裝了其他n個(gè)包,但是他不管,因?yàn)榘桶挥幸蕾囮P(guān)系的。比如我們只裝了一個(gè)requests包,但是requests包會(huì)順帶裝了一些其他依賴的小包,所以為了安全,只能將所有第三方包+python解釋器一起打包。如下圖所示。

藍(lán)色表示是安裝requests依賴的包,看到了吧!

Pyinstaller打包exe

這里呢,我就拿剛給同事寫(xiě)辦公自動(dòng)化腳本示例一下。源碼示例效果,如下圖所示。

1、我們來(lái)將這個(gè).py的文件打包成一個(gè)exe,我們直接cmd切換到這個(gè)腳本的目錄,執(zhí)行命令:pyinstaller-F setup.py,如下圖所示。

ps: -F參數(shù)表示覆蓋打包,這樣在打包時(shí),不管我們打包幾次,都是最新的,這個(gè)記住就行,固定命令。

執(zhí)行完畢之后,會(huì)生成幾個(gè)文件夾,如下圖所示:

在dist里面呢,就有了一個(gè)exe程序,這個(gè)就是可執(zhí)行的exe程序,如下圖所示:

2、我們把這個(gè)setup.exe拖到和setup.py平級(jí)的目錄,我們來(lái)運(yùn)行一下這個(gè),效果圖如下圖所示。

這樣,我們就完成了一個(gè)打包工作,如果別人需要,即使沒(méi)有python環(huán)境,他依然可以運(yùn)行。

3、接下來(lái)我們?cè)賮?lái)打包一個(gè)帶界面的,這里我用pyqt5寫(xiě)了一個(gè)最簡(jiǎn)單的框架,看一下打包成exe是否能運(yùn)行成功,效果圖如下圖所示:

我們可以看到,后面有一個(gè)黑洞洞的窗口,這就有點(diǎn)尷尬了,所以,我們的打包命令也要變一下。

4、執(zhí)行 pyinstaller -F -wsetup.py 多加-w以后,就不會(huì)顯示黑洞洞的控制臺(tái)了,這里就不做演示啦!

5、但是我們打包的exe,我們的圖標(biāo)呀,實(shí)在是有點(diǎn)丑陋,默認(rèn)的,沒(méi)有一點(diǎn)自己的風(fēng)格,那么,我們應(yīng)該怎么改一下呢?

準(zhǔn)備一個(gè)ico格式的圖標(biāo)文件,執(zhí)行命令:pyinstaller -F -w-i wind.ico setup.py,如下圖所示。

默認(rèn)打包圖片,如下圖所示:

加上 -i 參數(shù)之后,就會(huì)變成我們指定的logo圖標(biāo):

ps:程序路徑最好全部都是英文,否則可能會(huì)出現(xiàn)莫名其妙的問(wèn)題

到此,我們就完成了將Python程序打包成exe文件了。

總結(jié)命令

Pyinstaller -F setup.py 打包exe

Pyinstaller -F -w setup.py 不帶控制臺(tái)的打包

Pyinstaller -F -i xx.ico setup.py 打包指定exe圖標(biāo)打包

平常我們只需要這三個(gè)就好了,幾乎可以滿足你的絕大部分需求了。

結(jié)語(yǔ)

到這之后呢,python打包成exe基本算是結(jié)束了。提醒一句,記得把pip升級(jí)成最新版的pip再安裝pyinstaller哈。

根據(jù)我的經(jīng)驗(yàn),剛剛嘗試Python打包exe的同學(xué)往往都會(huì)碰上各種奇葩的坑。所以如果你一開(kāi)始沒(méi)有成功也不要?dú)怵H,這是很正常的。不斷地踩坑再爬起來(lái)本身就是編程學(xué)習(xí)的一部分。

想打包的朋友,趕緊動(dòng)起手來(lái)吧,祝你們好運(yùn)!

總結(jié)

以上是生活随笔為你收集整理的怎么把python程序发给别人_想把你写的Python程序发给别人用?打包成exe啊!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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