<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          別再問我怎么Python打包成exe了!

          共 5308字,需瀏覽 11分鐘

           ·

          2020-09-01 23:14

          點擊上方Python知識圈設(shè)為星標(biāo)

          回復(fù)1024獲取Python資料



          閱讀文本大概需要 5 分鐘


          點擊「閱讀原文」查看pk哥原創(chuàng)精品視頻。

          前言

          也許我們不一定是專業(yè)的程序員,但是我們?nèi)匀豢梢酝ㄟ^代碼提高我們的效率,盡量少加班,多陪陪媳婦。再不行,讓代碼替我們干著重復(fù)的工作,我們有節(jié)省出來的時間打游戲不好嘛,是吧,哈哈哈。

          但是呢,我們開發(fā)的腳本一般都會用到一些第三方包,可能別人也需要用到我們的腳本,如果我們將我們的xx.py文件發(fā)給他,他是不能直接用的,他還需要安裝python解釋器,甚至還要安裝我們用的那些第三方包,是不是有點小麻煩?但是我們都知道,PC是可以直接運行exe文件的,這就為我們提供了一個便捷的方式。所以,從看了這個教程以后,這都將成為過去式,打成exe之后,分享即可用。

          PS: 如果打包為exe的話,版本盡量選擇python3.6+32位版本,因為win64位系統(tǒng)向下兼容32位程序,但是如果不考慮32位系統(tǒng)的話無所謂,直接python64位版本直接打包就可以,只是只能在win64位系統(tǒng)上跑。

          安裝pyinstaller

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

          pyinstaller打包機(jī)制

          我們寫的python腳本是不能脫離python解釋器單獨運行的,所以在打包的時候,至少會將python解釋器和腳本一起打包,同樣,為了打包的exe能正常運行,會把我們所有安裝的第三方包一并打包到exe。

          即使我們的項目只使用的一個requests包,但是可能我們還安裝了其他n個包,但是他不管,因為包和包只有依賴關(guān)系的。比如我們只裝了一個requests包,但是requests包會順帶裝了一些其他依賴的小包,所以為了安全,只能將所有第三方包+python解釋器一起打包。如下圖所示。

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

          Pyinstaller打包exe

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

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

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

          2、執(zhí)行完畢之后,會生成幾個文件夾,如下圖所示。

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

          4、我們把這個setup.exe拖到和setup.py平級的目錄,我們來運行一下這個,效果圖如下圖所示。

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

          6、接下來我們再來打包一個帶界面的,這里我用pyqt5寫了一個最簡單的框架,看一下打包成exe是否能運行成功,效果圖如下圖所示。

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

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

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

          執(zhí)行命令:pyinstaller -F -w-i wind.ico setup.py,如下圖所示。

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

          10、加上 -i 參數(shù)之后,如下圖所示,會形成一個類似風(fēng)力發(fā)電機(jī)的logo圖案。

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

          11、到此,我們能用到的pyton打包成exe命令都總結(jié)完了

          總結(jié)命令

          Pyinstaller -F setup.py 打包exe

          Pyinstaller -F -w setup.py 不帶控制臺的打包

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

          平常我們只需要這三個就好了,足夠滿足所有需求了。

          結(jié)語

          到這之后呢,python打包成exe基本算是結(jié)束了,記得一定要把pip升級成最新版的pip在安裝pyinstaller哈。要不然可能會出現(xiàn)莫名奇妙的問題。

          不信邪的小伙伴們可以自己試試看,多碰碰壁也是可以學(xué)到很多的。








             
          -----------------------
          公眾號:Python知識圈
          博客:www.pyzhishiquan.com
          知乎Python知識圈
          微信視頻號:菜鳥程序員 (分享有趣的編程技巧、Python技巧)
          bilibili:菜鳥程序員的日常(目前原創(chuàng)視頻:22,累計播放量:85萬)


          我的微信視頻號定時更新中,近期真人出鏡分析講解 Python 經(jīng)典習(xí)題,后續(xù)會分享更多的干貨,歡迎關(guān)注我的微信視頻號。

             


          Python知識圈公眾號的交流群已經(jīng)建立,群里可以領(lǐng)取 Python 相關(guān)學(xué)習(xí)資料,大家可以一起學(xué)習(xí)交流,效率更高,如果是想發(fā)推文、廣告、砍價小程序的敬請繞道一定記得備注「交流學(xué)習(xí)」,不然不會通過好友

          掃碼添加,備注:交流學(xué)習(xí)




          往期推薦
          01

          公眾號所有文章匯總導(dǎo)航(2-10更新)

          02

          Github上有趣的100個Python項目

          03

          打基礎(chǔ)一定要吃透這12類 Python 內(nèi)置函數(shù)


          我就知道你“在看”

          瀏覽 39
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久中文字幕7区 | 免费一级a毛片免费观看 | 成人午夜短视频 | 久久,久久成人电影 | 大屁股喷水视频 |