作者buyiwhy (都是小事)
看板Python
标题[问题] xgboost使用pyinstaller打包
时间Mon Oct 18 17:16:58 2021
手机排版见谅
各位大大好,先说明一下自己的情形:
我大学时有修过很简单的python,所以实验室学长离职之後,
接下他负责的一个小专案。
原本老师的描述是只需负责写一些资料处理的部分(用pandas),
因为学长已经把training的部分完成了,
所以我完全没有插手到xgboost的地方
但是在我完成程式码之後,客户说希望我们打包成.exe档给他们,
问题来了,打包完的exe执行时都会显示
modulenotfounderror: no module named xgboost,
但是在编译器里面执行的时候是正常的。
网路上其实蛮多类似的问题,但我试了那些解决办法没一个有用……
大概知道问题是在於pyinstaller打包的时候抓不到xgboost相关的档案在哪里,
但不知道怎麽解决
我是用anaconda的spyder编译的,可以跑。但如果放在外面的资料夹
(没有使用虚拟环境,pip list里面有xgboost)用cmd python .py开启,也会出现一样的状况(no module…)
想知道有没有什麽解决方法,如果三言两语很难说得清,
可以站内我或是直接约见面,酬劳可议><
-----
Sent from JPTT on my iPhone
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.216.135.66 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1634548620.A.FBD.html
1F:推 lycantrope: python3 .py试试? 10/18 17:43
2F:推 Wilion: 不太了解你现在的环境,你说你用anaconda又说没用虚拟环境 10/18 19:33
哦我意思是我程式是用anaconda写的,但我打包的时候是在我档案的资料夹那边开cmd包的
3F:→ Wilion: 重新install看看吧,我觉得是打包的时候找不到module路径 10/18 19:34
※ 编辑: buyiwhy (49.216.135.66 台湾), 10/18/2021 20:07:54
4F:→ Hsins: 所以你打包的时候是用哪个路径下的 Python? 10/18 20:17
我有额外下载python,加到环境变数的PATH, 应该是这个吧
※ 编辑: buyiwhy (49.216.135.66 台湾), 10/18/2021 20:24:49
5F:推 Wilion: 那就在你可以跑的那个环境下打包试看看,还是很不懂都已经 10/18 21:35
因为第一次在conda那边包的时候也有error,而且那个error比较google不到解决方案
6F:→ Wilion: conda了,还要额外下载python,用conda不就是为了版本控管 10/18 21:36
※ 编辑: buyiwhy (49.216.135.66 台湾), 10/18/2021 22:09:46
7F:→ Hsins: 不一定, 还要看你有没有启用环境... 10/18 22:14
8F:推 TuCH: 那你在cmd里面可以run吗 10/19 08:28
在我自己的电脑里面可以,但研究室的不行;两台都有装了相关套件,所以我也是很蒙哈哈
9F:→ TuCH: 那在cmd 里面把相关套件装起来吧 pip install xgboost 10/19 08:29
10F:推 moodoa3583: 如果原来的环境都不行也许可以试试看看一个虚拟环境把 10/19 10:01
11F:→ moodoa3583: requirements 都装好之後再 pyinstaller 看看 10/19 10:01
12F:推 yuasa: 试试看不要打包成单一个exe档,会简单很多 10/19 13:38
13F:推 yuasa: 可以看auto-py-to-ext的解释。这是一个建立在pyinstaller上 10/19 13:46
14F:→ yuasa: 的package。或者你也可以直接用它 10/19 13:47
※ 编辑: buyiwhy (49.216.27.136 台湾), 10/19/2021 17:01:35
16F:→ buyiwhy: 我来试试看楼上两位大大的建议,再来回报给大家 10/19 17:02
17F:推 timsheu: pip list or pip3 list? 10/20 11:00
18F:推 Kendai: 直觉是作一个虚拟环境,把pyinstaller跟该装的装一装就解了 10/20 11:15
19F:推 hanfadacai: 打包完的exe先拖到cmd里面 看回报的问题 之前ico没包 10/22 16:47
20F:→ hanfadacai: 在同一个资料夹就无法执行 10/22 16:47
21F:推 pmove: 把pyinstaller 装在虚拟机下,再用虚拟机的pyinstaller 打 10/25 10:21
22F:→ pmove: 包看看 10/25 10:21
23F:→ sam4mvp41: 遇过同样的问题,每次pyinstaller打包都包不到xgboost 11/10 05:34
24F:→ sam4mvp41: 。手动把site-package lib里的xgboost 资料夹复制一份 11/10 05:34
25F:→ sam4mvp41: 到打包好的dist 资料夹就可以了 11/10 05:34