PyInstaller是python程序打包工具甫男,打包發(fā)布三個(gè)平臺(Window、Mac炮赦、Linux)。
一样勃、PyInstaller在window系列生成可執(zhí)行程序包吠勘。
先大致介紹一些我的項(xiàng)目需求,想做一個(gè)window的桌面程序峡眶,使用C#開發(fā)的剧防,開發(fā)工具使用的是Visual studio開發(fā);但核心質(zhì)檢代碼是python開發(fā)的幌陕,開發(fā)工具使用的是PyCharm诵姜。
使用PyInstaller打包Python程序。
第一步:切換PyCharm環(huán)境
注意:網(wǎng)上有人說使用虛擬環(huán)境可使打出包搏熄,更簡潔。但是我沒有成功暇赤,就自己建立一個(gè)本地環(huán)境心例。
第二步:測試Python程序正常運(yùn)行
1、我使用Python XX.py parameter測試源程序運(yùn)行正常鞋囊。(可以直接運(yùn)行等其他方式運(yùn)行測試)
第三步:安裝PyInstaller
可以還用pip install pyinstaller或conda install pyinstaller止后。
第四步:驗(yàn)證打包程序
使用命令pyinstaller -F xxx.py打包程序
運(yùn)行過程會打印處一些基礎(chǔ)信息PyInstaller、python、platform 版本信息译株。我的程序已經(jīng)打包成功會在dist文件下生成xx.exe文件瓜喇。
補(bǔ)充:
有時(shí)候,即使命令正確且相關(guān)依賴沒有問題歉糜,打包好的exe文件在其他電腦上仍無法正常運(yùn)行乘寒。這時(shí),可以嘗試創(chuàng)建一個(gè)新的純凈環(huán)境匪补,僅安裝所需的依賴伞辛,避免其他冗余依賴的干擾。例如夯缺,我之前遇到過類似問題蚤氏,通過重新建立一個(gè)環(huán)境并只下載必要的依賴,最終成功解決了問題踊兜,打包后的exe文件也能在其他電腦上正常運(yùn)行竿滨。可能是因?yàn)橐蕾囘^多時(shí)捏境,打包過程中會導(dǎo)致部分依賴丟失或無法正確打包于游。
(盲猜這種玄學(xué)問題是因?yàn)橐蕾囘^多打包的時(shí)候會導(dǎo)致部分依賴丟失或者不能正確進(jìn)行打包)
第五步:驗(yàn)證exe文件
使用命令XX.exe parameter。
注意:因exe文件中需要一些源程序的配置等文件典蝌,我把dist生成的exe拷貝到xx.py程序的同目錄下曙砂。這樣運(yùn)行不會報(bào)錯(cuò)。
使用Visual Studio生成桌面程序
我們使用Visual Studio做了一些簡單界面工作骏掀,讓所有的exe文件可以一起使用的管理界面鸠澈。
界面就不上傳了,下面把調(diào)用exe代碼給大家看看截驮。
string exe_path = @"..\..\SLDX_compliance_check_tool.exe"; // 被調(diào)exe
string the_args = @"..\..\job_order.json"; // 被調(diào)exe接受的參數(shù)
Process myPro = new Process();
ProcessStartInfo psi = new ProcessStartInfo(exe_path, the_args);
myPro.StartInfo = psi;
myPro.Start();
myPro.WaitForExit();
第六步:使用Visual Studio打包程序
使用Visual Studio打包發(fā)布程序笑陈,看了一些網(wǎng)上的教程,大致有兩種方法葵袭。
先介紹一種簡單的方式如下:
找到程序位置涵妥,在bin/debug下面找到y(tǒng)y.exe(yy為window程序名),直接打開運(yùn)行即可坡锡∨钔可以把整的項(xiàng)目壓縮,移植到其他window電腦直接使用鹉勒。
另外一種發(fā)布程序方法TODO下期更新帆锋;;禽额;
二锯厢、Mac
三皮官、Linux