怎么把python程序发给别人_想把你写的Python程序发给别人用?打包成exe啊!
前言
大家好,歡迎來到編程教室!
當你學了一段時間Python,終于寫出一個小游戲的時候,是不是很想發給你的小伙伴分享一下你的成果?但是,如果直接將xx.py文件發給別人,別人通常是不能直接運行的,他還需要安裝python解釋器,甚至還要安裝我們用到的第三方包,是不是有點小麻煩?
不過PC可以運行exe文件,這就為我們提供了一個變通的途徑:將Python程序打包成exe文件。這樣,對方就不需要自己配置Python環境,直接運行exe文件即可。
Python本身并沒有提供這個功能,所以需要借助一些外部庫來實現。之前我們曾經介紹過一個方式:
文章中使用了cx_freeze這個模塊。今天我們再介紹另一個工具:pyinstaller,也可以達到同樣的效果。因為打包exe過程中常會出現問題,所以兩種方案也可以互為補充。
PS:打包exe時,版本盡量選擇32位版本的Python,因為win64位系統向下兼容32位程序。另外切記使用的模塊版本一定要和Python版本嚴格一致,不然很可能打包失敗。
安裝pyinstaller
首先安裝pyinstaller,使用安裝命令:pip3 install pyinstaller,如下圖所示。
pyinstaller打包機制
我們寫的python腳本是不能脫離python解釋器單獨運行的,所以在打包的時候,至少會將python解釋器和腳本一起打包,同樣,為了打包的exe能正常運行,會把我們所有安裝的第三方包一并打包到exe。
即使我們的項目只使用的一個requests包,但是可能我們還安裝了其他n個包,但是他不管,因為包和包只有依賴關系的。比如我們只裝了一個requests包,但是requests包會順帶裝了一些其他依賴的小包,所以為了安全,只能將所有第三方包+python解釋器一起打包。如下圖所示。
藍色表示是安裝requests依賴的包,看到了吧!
Pyinstaller打包exe
這里呢,我就拿剛給同事寫辦公自動化腳本示例一下。源碼示例效果,如下圖所示。
1、我們來將這個.py的文件打包成一個exe,我們直接cmd切換到這個腳本的目錄,執行命令:pyinstaller-F setup.py,如下圖所示。
ps: -F參數表示覆蓋打包,這樣在打包時,不管我們打包幾次,都是最新的,這個記住就行,固定命令。
執行完畢之后,會生成幾個文件夾,如下圖所示:
在dist里面呢,就有了一個exe程序,這個就是可執行的exe程序,如下圖所示:
2、我們把這個setup.exe拖到和setup.py平級的目錄,我們來運行一下這個,效果圖如下圖所示。
這樣,我們就完成了一個打包工作,如果別人需要,即使沒有python環境,他依然可以運行。
3、接下來我們再來打包一個帶界面的,這里我用pyqt5寫了一個最簡單的框架,看一下打包成exe是否能運行成功,效果圖如下圖所示:
我們可以看到,后面有一個黑洞洞的窗口,這就有點尷尬了,所以,我們的打包命令也要變一下。
4、執行 pyinstaller -F -wsetup.py 多加-w以后,就不會顯示黑洞洞的控制臺了,這里就不做演示啦!
5、但是我們打包的exe,我們的圖標呀,實在是有點丑陋,默認的,沒有一點自己的風格,那么,我們應該怎么改一下呢?
準備一個ico格式的圖標文件,執行命令:pyinstaller -F -w-i wind.ico setup.py,如下圖所示。
默認打包圖片,如下圖所示:
加上 -i 參數之后,就會變成我們指定的logo圖標:
ps:程序路徑最好全部都是英文,否則可能會出現莫名其妙的問題
到此,我們就完成了將Python程序打包成exe文件了。
總結命令
Pyinstaller -F setup.py 打包exe
Pyinstaller -F -w setup.py 不帶控制臺的打包
Pyinstaller -F -i xx.ico setup.py 打包指定exe圖標打包
平常我們只需要這三個就好了,幾乎可以滿足你的絕大部分需求了。
結語
到這之后呢,python打包成exe基本算是結束了。提醒一句,記得把pip升級成最新版的pip再安裝pyinstaller哈。
根據我的經驗,剛剛嘗試Python打包exe的同學往往都會碰上各種奇葩的坑。所以如果你一開始沒有成功也不要氣餒,這是很正常的。不斷地踩坑再爬起來本身就是編程學習的一部分。
想打包的朋友,趕緊動起手來吧,祝你們好運!
總結
以上是生活随笔為你收集整理的怎么把python程序发给别人_想把你写的Python程序发给别人用?打包成exe啊!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推特被曝去年12月营收和利润同比降约40
- 下一篇: 加入离职潮,消息称苹果公司云业务高管将于