首页 > 解决方案 > Pickle 找不到我不使用的模块?

问题描述

我有一个使用这些模块生成模型的脚本。

import pandas as pd
import seaborn as sns
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split
from sklearn import metrics
from sklearn.metrics import classification_report, confusion_matrix
from sklearn.model_selection import RandomizedSearchCV
from sklearn.metrics import accuracy_score
from sklearn.ensemble import GradientBoostingClassifier
from imblearn.over_sampling import RandomOverSampler
from datetime import datetime
import pickle

然后当我解开模型时,我得到:

ImportError: No module named _gb

我很困惑,可能是什么问题?

我已经尝试过,我可以在 Python shell 中手动导入所有这些模块

非常感谢

  File "/data/keenek1/production/ncx3_nps.py", line 232, in <module>
    model_det = pickle.load(file)
  File "/app/anaconda2/lib/python2.7/pickle.py", line 1384, in load
    return Unpickler(file).load()
  File "/app/anaconda2/lib/python2.7/pickle.py", line 864, in load
    dispatch[key](self)
  File "/app/anaconda2/lib/python2.7/pickle.py", line 1096, in load_global
    klass = self.find_class(module, name)
  File "/app/anaconda2/lib/python2.7/pickle.py", line 1130, in find_class
    __import__(module)
ImportError: No module named _gb

标签: pythonpython-3.xpickle

解决方案


当保存和加载发生在不同的环境中时,就会发生这种情况。

我相信为了让 Pickle 正常工作,与模型相关的所有模块在酸洗和解酸时必须具有相同的版本;python版本和操作系统必须相同。

No module named _gb当保存在 Windows 中的模型在 Linux 环境中加载时,可能会发生错误。


推荐阅读