[問題] xgboost使用pyinstaller打包

作者: buyiwhy (都是小事)   2021-10-18 17:16:58
手機排版見諒
各位大大好,先說明一下自己的情形:
我大學時有修過很簡單的python,所以實驗室學長離職之後,
接下他負責的一個小專案。
原本老師的描述是只需負責寫一些資料處理的部分(用pandas),
因為學長已經把training的部分完成了,
所以我完全沒有插手到xgboost的地方
但是在我完成程式碼之後,客戶說希望我們打包成.exe檔給他們,
問題來了,打包完的exe執行時都會顯示
modulenotfounderror: no module named xgboost,
但是在編譯器裡面執行的時候是正常的。
網路上其實蠻多類似的問題,但我試了那些解決辦法沒一個有用……
大概知道問題是在於pyinstaller打包的時候抓不到xgboost相關的檔案在哪裡,
但不知道怎麼解決
我是用anaconda的spyder編譯的,可以跑。但如果放在外面的資料夾
(沒有使用虛擬環境,pip list裡面有xgboost)用cmd python .py開啟,也會出現一樣的狀況(no module…)
想知道有沒有什麼解決方法,如果三言兩語很難說得清,
可以站內我或是直接約見面,酬勞可議><
作者: lycantrope (阿寬)   2021-10-18 17:43:00
python3 .py試試?
作者: Wilion   2021-10-18 19:33:00
不太了解你現在的環境,你說你用anaconda又說沒用虛擬環境重新install看看吧,我覺得是打包的時候找不到module路徑
作者: Hsins (翔)   2021-10-18 20:17:00
所以你打包的時候是用哪個路徑下的 Python?
作者: Wilion   2021-10-18 21:35:00
那就在你可以跑的那個環境下打包試看看,還是很不懂都已經conda了,還要額外下載python,用conda不就是為了版本控管
作者: Hsins (翔)   2021-10-18 22:14:00
不一定, 還要看你有沒有啟用環境...
作者: TuCH (謬客)   2021-10-19 08:28:00
那你在cmd裡面可以run嗎那在cmd 裡面把相關套件裝起來吧 pip install xgboost
作者: moodoa3583 (金牌台灣啤酒)   2021-10-19 10:01:00
如果原來的環境都不行也許可以試試看看一個虛擬環境把requirements 都裝好之後再 pyinstaller 看看
作者: yuasa (XD)   2021-10-19 13:38:00
試試看不要打包成單一個exe檔,會簡單很多可以看auto-py-to-ext的解釋。這是一個建立在pyinstaller上的package。或者你也可以直接用它https://tinyurl.com/uyp54a3x
作者: buyiwhy (都是小事)   2021-10-19 17:02:00
我來試試看樓上兩位大大的建議,再來回報給大家
作者: timsheu (為道日損)   2021-10-20 11:00:00
pip list or pip3 list?
作者: Kendai (ShouldIStayOrShouldIGo)   2021-10-20 11:15:00
直覺是作一個虛擬環境,把pyinstaller跟該裝的裝一裝就解了
作者: hanfadacai (沒有綽啦)   2021-10-22 16:47:00
打包完的exe先拖到cmd裡面 看回報的問題 之前ico沒包在同一個資料夾就無法執行
作者: pmove (金疾檸檬)   2021-10-25 10:21:00
把pyinstaller 裝在虛擬機下,再用虛擬機的pyinstaller 打包看看
作者: sam4mvp41   2021-11-10 05:34:00
遇過同樣的問題,每次pyinstaller打包都包不到xgboost。手動把site-package lib裡的xgboost 資料夾複製一份到打包好的dist 資料夾就可以了

Links booklink

Contact Us: admin [ a t ] ucptt.com