1. 程式人生 > >桌面應用“標註器”打包踩坑記

桌面應用“標註器”打包踩坑記

環境 的確 變量 標註 imp sci 技術 報錯 編寫

昨天(2018/4/6)花了幾乎一天的時間打包我的桌面應用“標註器”。下午3點完成最後的編寫之後,準備在女朋友雅喻的電腦上配環境打包(我的電腦不能用pyinstaller打包,重裝也不行,玄學錯誤。)。雅喻的電腦上缺少scikit-image這個包,然後我就下了一個。但是主程序不能運行,報錯,traceback最後一行具體說的是str變量沒有read()屬性。我以為是包有問題(懷疑是PIL),所以還是去張遼電腦上打包。因為上次我在他電腦上打包成功了。

一頓操作之後,我選擇的打包為單個路徑而不是單個文件(為了執行能快一點),但是提示錯誤:

技術分享圖片 然後百度,各種騷答案都出來了。試了大概一個小時,到了下午6點,都不行。我嘗試著打包一個helloworld級別的pyqt5應用,結果成功了,那麽說明這個鍋pyqt5不背(當時完全懵逼了,根本不知道哪出錯),然後從張遼那拷貝了原始的代碼進行打包,結果成功。(一次打包過程接近15分鐘,可以說提心吊膽) 猜測是後面代碼優化的時候使用了導致這次錯誤的包。於是去掉了import skimage的語句,結果打包成功。 現在說明問題只能出在skimage這個包了。於是新建一個測試文件,將其打包為-c的控制臺應用,執行後出現以下錯誤: 技術分享圖片
定位到最後,也就是 ModuleNotFoundError: No module named ‘pywt._extensions._cwt‘ 這個錯誤。 百度之後,應該是hiddenimport的解決方法。測試之後應用到“標註器”的打包上,測試成功。 這個時候已經是晚上10點了。但是在其他電腦上依然有以下問題: 技術分享圖片 這就比較好解決了。百度之後是環境變量的問題。設置之後果然點亮成功 今天的經歷可謂一波三折,並且浪費了大量的時間。總結起來的話,當時就應該先設置“-c -D”的參數進行打包,方便定位錯誤。但是這一波操作下來至少也長了很多見識。pyqt5桌面應用的發布,或者說python在Windows系統上的打包發布,的確是個深坑。python也應該有他自己的作用域,下次,我會盡量選擇Qt而不是PyQt5進行桌面應用的開發。

桌面應用“標註器”打包踩坑記