我已经建立了一个sklearn管道,将一个标准支持向量回归组件与一些自定义变压器组合起来创建特征。然后将该管道放入一个对象中进行训练,然后使用pickle (这似乎是推荐的方式) 进行序列化。反序列化对象用于进行预测。
为了分发,使用pyinstaller将其转换为可执行文件。
当我从单元测试中调用反序列化的回归对象时,它可以正常工作。
但是,当我尝试使用PyInstaller二进制文件进行预测时,会得到一个长的堆栈跟踪,以此结束:
module = loader.load_module(fullname) File "messagestream.pxd", line 5, in init scipy.optimize._trlib._trlib ImportError: No module named 'scipy._lib.messagestream'
这感觉像是一种腌制错误,可能是由于腌制与pyinstaller的交互作用引起的。我该如何重构我的代码,以便在取消腌制后,我的自定义管道可以像标准的sklearn回归器一样轻松且稳健地运行?