pyinstaller打包py腳本Warning:lib not found等相關問題


  小爬從使用Pyinstaller打包py為exe文件以來,一直都會碰到Warning:lib not found等相關問題,諸如:

  雖然大多數時候,您像我一樣忽略這些warning,打包后的exe也能運行。網上有一堆的方法,有建議裝win7的,也有建議換32位python文件的,有提示下載2G大小的相關SDK的。總之,就是pyinstaller對目前的win10支持不夠友好!但是網上這些方法代價太高,那么不改win10 X64系統,不更改 python版本(3.6.4)的情況下,如何優雅地使用pyinstaller且沒有滿屏的warning提示呢?

  小爬我經過一番摸索,終於找到了方法,pyinstaller提示找不到的這些dll文件,比如 api-ms-win-crt-runtime-l1-1-0.dll  其實 在win10系統中同樣是存在的,大部分都在:C:\Windows\System32\downlevel路徑和它的上層路徑C:\Windows\System32 下,如下圖:

我們只需要將這兩個路徑加入用戶環境變量即可。

添加完環境變量后,pyinstaller再打包py文件時,會優先在這些路徑查找,就可以成功打包了。PS:記得注銷系統重新登陸后,方能生效!

再次打包,頁面清爽多了,win10 X64下親測有效!

  PS:需要注意的是,很多時候我們pyinstaller打包py文件雖然顯示“成功”,但是真正運行exe文件,依舊會報錯,諸如fail to execute script之類,終端界面往往一閃而過,我們肉眼很多時候甚至看不清具體原因!小爬有個笨方法——錄屏。推薦一個好用的錄屏軟件Ocam。肉眼看上去一閃而過的提示信息會被錄屏軟件完整記錄下來,形成mp4文件,我們再借助播放器的暫停功能,就可以定位到錯誤信息。以下是我執行時遇到的幾個錯誤:

這個時候問題就簡單了,比如,上面這兩個圖提示的是,一個找不到模塊distuils,一個提示需要安裝依賴庫xlrd。我們將distuils文件夾從python文件位置對應的lib文件下找到,放到我們的python(env)對應的文件夾下即可,xlrd則直接用pip安裝即可。

 

   ps:如果您要打包的是像我一樣引用了pandas庫的py文件,則程序中盡可能不要直接 import pandas as pd,這樣打包后的exe文件非常大,可以考慮用到什么函數就引用什么函數,如:

from pandas import read_csv,read_excel,DataFrame,concat

  如果您在使用pyinstaller時有這類困擾,快用我的方法再試試吧!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM