Python3.10升级至3.11后joblib.load触发TypeError错误
问题解决:Python3.11下joblib.load触发TypeError
问题根源
错误本质并非joblib的问题,而是patsy库版本不兼容Python3.11。在patsy的eval.py代码中,feature.getMandatoryRelease()在Python3.11环境下可能返回None,但旧版patsy未处理该情况,直接将返回值与sys.version_info做比较,触发类型错误。
解决方案
1. 升级patsy库
执行命令升级到兼容Python3.11的版本:
pip install --upgrade patsy
patsy 0.5.3及以上版本已修复该Python3.11兼容问题。
2. 同步升级依赖的category_encoders
由于category_encoders依赖patsy,建议同时升级该库以确保整体兼容性:
pip install --upgrade category_encoders
3. 备选方案:重新生成pickle文件
若上述升级后仍存在问题,建议在Python3.11环境下重新训练模型并生成新的test.pkl文件——跨Python版本的pickle文件本身存在兼容性风险,这是最彻底的解决方式。
内容的提问来源于stack exchange,提问作者daredevil
相关产品推荐
相关产品推荐

