Python 使用joblib.load从磁盘读取xgboost模型时出现类型错误

Python 使用joblib.load从磁盘读取xgboost模型时出现类型错误,python,xgboost,joblib,Python,Xgboost,Joblib,我只是试图通过joblib读取XGBoost模型(os.path.exists(self.\u classifier\u XGBoost\u path)按预期返回True): 但是,我得到以下错误: File "/home/iai/Desktop/barak_8/main.py", line 150, in <module> main() File "/home/iai/Desktop/barak_8/main.py", lin

我只是试图通过
joblib
读取
XGBoost
模型(
os.path.exists(self.\u classifier\u XGBoost\u path)
按预期返回
True
):

但是,我得到以下错误:

  File "/home/iai/Desktop/barak_8/main.py", line 150, in <module>
    main()
  File "/home/iai/Desktop/barak_8/main.py", line 32, in main
    classifier = Classifier(config=config)
  File "/home/iai/Desktop/barak_8/classifiers.py", line 56, in __init__
    if os.path.exists(self._classifier_xgboost_path) \
  File "/home/iai/Desktop/barak_8/venv/lib/python3.6/site-packages/joblib/numpy_pickle.py", line 585, in load
    obj = _unpickle(fobj, filename, mmap_mode)
  File "/home/iai/Desktop/barak_8/venv/lib/python3.6/site-packages/joblib/numpy_pickle.py", line 504, in _unpickle
    obj = unpickler.load()
  File "/usr/lib/python3.6/pickle.py", line 1050, in load
    dispatch[key[0]](self)
  File "/usr/lib/python3.6/pickle.py", line 1323, in load_newobj
    obj = cls.__new__(cls, *args)
TypeError: NoneType.__new__(X): X is not a type object (NoneType)

这很可能是由于缺少xgboost模型的某些依赖导入造成的。 今天早些时候我遇到了这个问题,在我的例子中,它是由环境中缺少导入引起的。 我的环境中缺少了
scikit learn

  File "/home/iai/Desktop/barak_8/main.py", line 150, in <module>
    main()
  File "/home/iai/Desktop/barak_8/main.py", line 32, in main
    classifier = Classifier(config=config)
  File "/home/iai/Desktop/barak_8/classifiers.py", line 56, in __init__
    if os.path.exists(self._classifier_xgboost_path) \
  File "/home/iai/Desktop/barak_8/venv/lib/python3.6/site-packages/joblib/numpy_pickle.py", line 585, in load
    obj = _unpickle(fobj, filename, mmap_mode)
  File "/home/iai/Desktop/barak_8/venv/lib/python3.6/site-packages/joblib/numpy_pickle.py", line 504, in _unpickle
    obj = unpickler.load()
  File "/usr/lib/python3.6/pickle.py", line 1050, in load
    dispatch[key[0]](self)
  File "/usr/lib/python3.6/pickle.py", line 1323, in load_newobj
    obj = cls.__new__(cls, *args)
TypeError: NoneType.__new__(X): X is not a type object (NoneType)
Python 3.6
xgboost 1.3.1
joblib 1.0.0