小爬從使用Pyinstaller打包py爲exe文件以來,一直都會碰到Warning:lib not found等相關問題,諸如:python
雖然大多數時候,您像我同樣忽略這些warning,打包後的exe也能運行。網上有一堆的方法,有建議裝win7的,也有建議換32位python文件的,有提示下載2G大小的相關SDK的。總之,就是pyinstaller對目前的win10支持不夠友好!可是網上這些方法代價過高,那麼不改win10 X64系統,不更改 python版本(3.6.4)的狀況下,如何優雅地使用pyinstaller且沒有滿屏的warning提示呢?api
小爬我通過一番摸索,終於找到了方法,pyinstaller提示找不到的這些dll文件,好比 api-ms-win-crt-runtime-l1-1-0.dll 其實 在win10系統中一樣是存在的,大部分都在:C:\Windows\System32\downlevel路徑和它的上層路徑C:\Windows\System32 下,以下圖:函數
咱們只須要將這兩個路徑加入用戶環境變量便可。ui
添加完環境變量後,pyinstaller再打包py文件時,會優先在這些路徑查找,就能夠成功打包了。PS:記得註銷系統從新登錄後,方能生效!spa
再次打包,頁面清爽多了,win10 X64下親測有效!excel
PS:須要注意的是,不少時候咱們pyinstaller打包py文件雖然顯示「成功」,可是真正運行exe文件,依舊會報錯,諸如fail to execute script之類,終端界面每每一閃而過,咱們肉眼不少時候甚至看不清具體緣由!小爬有個笨方法——錄屏。推薦一個好用的錄屏軟件Ocam。肉眼看上去一閃而過的提示信息會被錄屏軟件完整記錄下來,造成mp4文件,咱們再借助播放器的暫停功能,就能夠定位到錯誤信息。如下是我執行時遇到的幾個錯誤:blog
這個時候問題就簡單了,好比,上面這兩個圖提示的是,一個找不到模塊distuils,一個提示須要安裝依賴庫xlrd。咱們將distuils文件夾從python文件位置對應的lib文件下找到,放到咱們的python(env)對應的文件夾下便可,xlrd則直接用pip安裝便可。ip
ps:若是您要打包的是像我同樣引用了pandas庫的py文件,則程序中儘量不要直接 import pandas as pd,這樣打包後的exe文件很是大,能夠考慮用到什麼函數就引用什麼函數,如:pandas
若是您在使用pyinstaller時有這類困擾,快用個人方法再試試吧!pip