使用PyInstaller將Python文件打包成Windows系統(tǒng)可執(zhí)行文件
官網(wǎng)
PyInstaller官方網(wǎng)站:http://www.pyinstaller.org/
國(guó)內(nèi)鏡像庫(kù)
PyInstaller Gitee:https://gitee.com/mirrors/pyinstaller
簡(jiǎn)介
在開發(fā)一些小工具給他人使用時(shí),他人的系統(tǒng)中可能并沒有安裝python環(huán)境或沒有安裝相應(yīng)的第三方庫(kù),要求對(duì)方安裝不怎么現(xiàn)實(shí),特別是對(duì)方不是技術(shù)人員的時(shí)候,此時(shí)將開發(fā)好的腳步通過pyinstaller打包成一個(gè)可執(zhí)行文件是個(gè)不錯(cuò)的選擇。
pyinstaller本身可以跨平臺(tái)使用,但這里的跨平臺(tái)指的是pyinstaller本身,通過pyinstaller打包出來(lái)的文件是無(wú)法跨平臺(tái)的,在MacOS下使用pyinstaller打包python程序,打包后的內(nèi)容只可在MacOS下運(yùn)行,在windwos下打包的python程序,只可在Windows下運(yùn)行。
安裝Pyinstaller
安裝pywin32
下載安裝文件:查找到跟自己適用的python版本及window系統(tǒng)版本匹配的pywin32,下載后安裝
安裝Pyinstaller
下載安裝文件安裝:官網(wǎng)

使用Pyinstaller
打包方式
使用下載Pyinstaller打包方式
將需要打包的文件放在解壓得到的Pyinstaller文件夾中,打開cmd窗口,把路徑切換到當(dāng)前路徑打開命令提示行,輸入以下內(nèi)容(最后的是文件名):
使用pip Pyinstaller打包方式
打開cmd窗口,把路徑切換到文件所在路徑(文件隨便放在哪里都行)打開命令提示行,輸入以下內(nèi)容(最后的是文件名):
打包參數(shù)
pyinstaller最重要的兩個(gè)參數(shù)就是-F與-D參數(shù)
-F:表示在 dist 文件夾下只生成單個(gè)可執(zhí)行文件(內(nèi)部包含所有依賴),不加默認(rèn)會(huì)在 dist 生成一大堆依賴文件 + 可執(zhí)行文件。
-D:與 -F 相反用法。
-W:表示去掉控制臺(tái)窗口,如果你的程序是有界面的,可以不寫這個(gè)參數(shù)。但是測(cè)試情況下建議先加上這個(gè)參數(shù),因?yàn)槿绻虬怀晒?,運(yùn)行時(shí)報(bào)錯(cuò)信息會(huì)在控制臺(tái)上輸出,沒有控制臺(tái)就看不到報(bào)錯(cuò)信息。
-c:表示去掉窗框,使用控制臺(tái)。
-p:表示指定程序的依賴庫(kù)位置或者自己定義需要加載的類路徑,項(xiàng)目中包含多個(gè)自建模塊的時(shí)候需要加上 -p aaa.py -p bbb.py -p ccc.py

- Ps:
不指定依賴庫(kù)無(wú)法打包應(yīng)用程序。
-i:表示可執(zhí)行文件的圖標(biāo),后面跟圖標(biāo)的路徑(例 -i "icon.icns",Mac 下圖標(biāo)文件為 icns 格式, Win 為ico 格式)。
-n:設(shè)置打包后的應(yīng)用名稱,例 -n "小程序"。

--hidden-import:后面跟模塊名如 queue,用于告訴打包程序某個(gè)模塊我用不著你不用打包進(jìn)去。
打包命令
綜上所述,最常用的命令為:
打包步驟
第一步,在App根目錄輸出cmd,進(jìn)入命令窗口

第二步,在App根目錄放入favicon.ico圖標(biāo)作為exe可執(zhí)行文件的Logo

第三步,輸入下面的命令進(jìn)行打包

第四步,生成spec文件和exe可執(zhí)行文件


第五步,借助Windows系統(tǒng)的“任務(wù)計(jì)劃程序”定時(shí)執(zhí)行exe可執(zhí)行文件

分級(jí)拉動(dòng)命令如下:
pyinstaller -F SendTestTaskPerson.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 分級(jí)拉動(dòng)(測(cè)試單提醒)
pyinstaller -F SendMsgPerson.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 分級(jí)拉動(dòng)(全部)
pyinstaller -F SendBugPerson.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 分級(jí)拉動(dòng)(缺陷提醒)
pyinstaller -F SendBugRobotCard.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 分級(jí)拉動(dòng)(缺陷提醒機(jī)器人)
pyinstaller -F SendStoryPerson.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 分級(jí)拉動(dòng)(BUG轉(zhuǎn)需求提醒)
pyinstaller -F SendZentaoDataPerson.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 個(gè)性化提醒(禪道與釘釘昨日數(shù)據(jù))
pyinstaller -F SendDruidPersonDev.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 接口性能自動(dòng)化巡檢機(jī)器人(開發(fā)環(huán)境)
pyinstaller -F SendDruidPersonTest.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 接口性能自動(dòng)化巡檢機(jī)器人(測(cè)試環(huán)境)
pyinstaller -F SendDruidPersonProd.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 長(zhǎng)春軌道交通運(yùn)營(yíng)-接口性能巡檢機(jī)器人(生產(chǎn)環(huán)境)
pyinstaller -F SendDruidPersonProd1.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 長(zhǎng)春軌道交通運(yùn)營(yíng)-讀取接口平均耗時(shí)(生產(chǎn)環(huán)境)
pyinstaller -F -w GuiLoginPage.py -i favicon.ico -p D:\work\tools\Python\Python36\Lib\site-packages -n 接口性能巡檢機(jī)器人配置助手
使用PyInstaller將Python文件打包成Windows系統(tǒng)可執(zhí)行文件的評(píng)論 (共 條)
