简体   繁体   English

从 sklearn.externals 导入 joblib 时收到导入错误

[英]Recieved import error while importing joblib from sklearn.externals

Exectued the followwing code执行以下代码

from flask import Flask, request, jsonify, make_response
from flask_restplus import Api, Resource, fields
from sklearn.externals import joblib
import numpy as np
import sys

flask_app = Flask(__name__)
app = Api(app = flask_app, 
          version = "1.0", 
          title = "ML React App", 
          description = "Predict results using a trained model")

name_space = app.namespace('prediction', description='Prediction APIs')

model = app.model('Prediction params', 
                  {'Recency': fields.Float(required = True, 
                                               description="Recency Value", 
                                               help="Recency Value cannot be blank"),
                  'Frequency': fields.Float(required = True, 
                                               description="Frequency Value", 
                                               help="Frequency Value cannot be blank"),
                  'Monetary': fields.Float(required = True, 
                                            description="Monetary Value", 
                                            help="Monetary Value cannot be blank"),
                  })

classifier = joblib.load('classifier.joblib')

@name_space.route("/")
class MainClass(Resource):

    def options(self):
        response = make_response()
        response.headers.add("Access-Control-Allow-Origin", "*")
        response.headers.add('Access-Control-Allow-Headers', "*")
        response.headers.add('Access-Control-Allow-Methods', "*")
        return response

    @app.expect(model)      
    def post(self):
        try: 
            formData = request.json
            data = [val for val in formData.values()]
            prediction = classifier.predict(np.array(data).reshape(1, -1))
            types = { 0: "Loyal", 1: "NotLoyal"}
            response = jsonify({
                "statusCode": 200,
                "status": "Prediction made",
                "result": "The type of Loyalty is: " + types[prediction[0]]
                })
            response.headers.add('Access-Control-Allow-Origin', '*')
            return response
        except Exception as error:
            return jsonify({
                "statusCode": 500,
                "status": "Could not make prediction",
                "error": str(error)
            })

Recieved the following error.收到以下错误。

Error: While importing "app", an ImportError was raised:错误:在导入“app”时,引发了 ImportError:

Traceback (most recent call last):回溯(最近一次通话最后):
File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\flask\cli.py", line 240, in locate_app文件“d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\flask\cli.py”,第 240 行,在 locate_app
import (module_name)导入(模块名称)
File "D:\dilipan\clg\proj\ML-React-App-Template-master\service\app.py", line 3, in from sklearn.externals import joblib文件“D:\dilipan\clg\proj\ML-React-App-Template-master\service\app.py”,第 3 行,从 sklearn.externals 导入 joblib
ImportError: cannot import name 'joblib' from 'sklearn.externals' (d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\sklearn\externals__init__.py) ImportError:无法从“sklearn.externals”导入名称“joblib”(d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\sklearn\externals__init__.py)

I executed the same in a different pc 2 months ago and it was working fine.两个月前我在另一台电脑上执行了同样的操作,它运行良好。

Could not import joblib from sklearn.externals无法从 sklearn.externals 导入 joblib

Any would be appreciated.任何将不胜感激。 Thanks in advance.提前致谢。

Edit:编辑:

I tried using: import joblib instead of from sklearn.externals import joblib it gave me the following errors我尝试使用: import joblib而不是from sklearn.externals import joblib它给了我以下错误

File "c:\users\dilipan\appdata\local\programs\python\python38-32\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\dilipan\appdata\local\programs\python\python38-32\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "D:\dilipan\clg\proj\ML-React-App-Template-master\service\venv\Scripts\flask.exe\__main__.py", line 7, in <module>
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\flask\cli.py", line 967, in main
    cli.main(args=sys.argv[1:], prog_name="python -m flask" if as_module else None)
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\flask\cli.py", line 586, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\click\core.py", line 782, in main
    rv = self.invoke(ctx)
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\click\core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\click\core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\click\decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\flask\cli.py", line 848, in run_command
    app = DispatchingApp(info.load_app, use_eager_loading=eager_loading)
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\flask\cli.py", line 305, in __init__
    self._load_unlocked()
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\flask\cli.py", line 330, in _load_unlocked
    self._app = rv = self.loader()
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\flask\cli.py", line 392, in load_app
    app = locate_app(self, import_name, None, raise_if_not_found=False)
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\flask\cli.py", line 240, in locate_app
    __import__(module_name)
  File "D:\dilipan\clg\proj\ML-React-App-Template-master\service\app.py", line 27, in <module>
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\joblib\numpy_pickle.py", line 585, in load
    obj = _unpickle(fobj, filename, mmap_mode)
  File "d:\dilipan\clg\proj\ml-react-app-template-master\service\venv\lib\site-packages\joblib\numpy_pickle.py", line 504, in _unpickle
    obj = unpickler.load()
  File "c:\users\dilipan\appdata\local\programs\python\python38-32\lib\pickle.py", line 1210, in load
    dispatch[key[0]](self)
  File "c:\users\dilipan\appdata\local\programs\python\python38-32\lib\pickle.py", line 1587, in load_reduce
    stack[-1] = func(*args)
  File "sklearn\tree\_tree.pyx", line 607, in sklearn.tree._tree.Tree.__cinit__
ValueError: Buffer dtype mismatch, expected 'SIZE_t' but got 'long long'

You can import joblib directly instead of importing sklearn.externals, since it is deprecated in latest version of scikitlearn, and joblib can be imported directly -您可以直接导入 joblib 而不是导入 sklearn.externals,因为它在最新版本的 scikitlearn 中已弃用,并且可以直接导入 joblib -

import joblib

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 亵渎检查错误无法从“sklearn.externals”导入名称“joblib” - profanity check error cannot import name 'joblib' from 'sklearn.externals' Python 导入错误:无法从“sklearn.externals”导入名称“六” - Python import error: cannot import name 'six' from 'sklearn.externals' 我在 spyder ImportError: cannot import name 'six' from 'sklearn.externals' 尽管我已经安装了六个模块 - i got this error on spyder ImportError: cannot import name 'six' from 'sklearn.externals' despite i have installed the six module sklearn.externals joblib 抛出 ImportError - 服务器上没有名为 joblib.numpy_pickle 的模块 - sklearn.externals joblib throws ImportError - no module named joblib.numpy_pickle on a server sklearn.externals模块说明 - sklearn.externals module description 没有名为“sklearn.externals.joblib”的模块错误 - No module named 'sklearn.externals.joblib' ERROR 从 sklearn 导入 LogisticRegression 时出现导入错误 - Import error while importing LogisticRegression from sklearn 导入 sklearn 时 Python 出错。无法从“joblib.logger”导入名称“Logger” - Error in Python when importing sklearn ..cannot import name 'Logger' from 'joblib.logger' Sklearn 错误,无法从“joblib”导入名称“Logger” - Sklearn error, cannot import name 'Logger' from 'joblib' 在 Python 中导入 sklearn 时出现导入错误 - Import Error on importing sklearn in Python
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM