При запуске модели машинного обучения django я сталкиваюсь с ModuleNotFoundError: Нет модуля с именем 'sklearn_pandas' confict
*Исключение в потоке django-main-thread: Traceback (последний последний вызов): Файл "C:\Python39\lib\threading.py", строка 973, in _bootstrap_inner self.run()
File "C:\Python39\lib\threading.py", line 910, in run self._target(*self._args, **self._kwargs) File "C:\Python39\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs)
File "C:\Python39\lib\site-packages\django\core\management\commands\runserver.py", line 118, in inner_run self.check(display_num_errors=True)
File "C:\Python39\lib\site-packages\django\core\management\base.py", line 419, in check all_issues = checks. run_checks( File "C:\Python39\lib\site-packages\django\core\checks\registry.py", line 76, in run_checks new_errors = check(app_configs=app_configs, databases=databases)
File "C:\Python39\lib\site-packages\django\core\checks\urls.py", line 40, in check_url_namespaces_unique all_namespaces = _load_all_namespaces(resolver)
File "C:\Python39\lib\site-packages\django\core\checks\urls.py", line 57, in _load_all_namespaces url_patterns = getattr(resolver, 'url_patterns', [])
File "C:\Python39\lib\site-packages\django\utils\functional.py", line 48, in get res = instance.dict[self.name] = self. func(instance) File "C:\Python39\lib\site-packages\django\urls\resolvers.py", line 598, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\Python39\lib\site-packages\django\utils\functional.py", line 48, in get res = instance.dict[self.name] = self.func(instance) File "C:\Python39\lib\site-packages\django\urls\resolvers. py", строка 591, в urlconf_module return import_module(self.urlconf_name) Файл "C:\Python39\lib\importlib_init_.py", строка 127, в import_module return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import File "", line 1007, in _find_and_load File "", line 986, in _find_and_load_unlocked File "", line 680, in _load_unlocked File "", line 850, in exec_module File "", line 228, in _center code here
all_with_frames_removed
Файл "C:\Python39\lib\site-packages\joblib\numpy_pickle. py", строка 585, в load obj = _unpickle(fobj, filename, mmap_mode) Файл "C:\Python39\lib\site-packages\joblib\numpy_pickle.py", строка 504, в _unpickle obj = unpickler.load()
File "C:\Python39\lib\pickle.py", line 1212, in load dispatchkey[0] File "C:\Python39\lib\pickle.py", line 1528, in load_global klass = self.find_class(module, name) File
"C:\Python39\lib\pickle.py", строка 1579, in find_class import(module, level=0)
ModuleNotFoundError: Модуль с именем 'sklearn_pandas'*
отсутствует.Как решить эту проблему. Я застрял здесь, чтобы развернуть свою модель машинного обучения
Мой код:
from django.shortcuts import render from django.http import HttpResponse import pandas as pd
Создайте свои представления здесь.
import joblib
reloadModel = joblib.load('./models/RFModelforMPG.pkl')
def index(request): context = {'a':'Machine Learning'} return render(request, 'index.html', context)
def predictMPG(request): print(request) if request.method == 'POST': temp = {} temp['cylinders'] = request.POST.get('cylinderVal') temp['cylinders'] = request.POST.get('dispVal') temp['cylinders'] = request.POST.get('hrsPwrVal') temp['cylinders'] = request.POST.get('weightVal') temp['cylinders'] = request.POST.get('accVal') temp['cylinders'] = request.POST.get('modelVal') temp['cylinders'] = request.POST.get('originVal')
testData = pd.DataFrame({'x': temp}).transpose()
scoreval = reloadModel.predict(testData)[0]
context = {'scoreval':scoreval}
return render(request, 'index.html', context)
Поскольку Pandas, который я использовал, не является частью библиотеки sklearn и представляет собой отдельный модуль, его можно установить различными способами, найти их можно здесь https://pandas.pydata.org/docs/getting_started/install.html, а затем в коде везде, где требуется pandas, просто (import pandas) или я обычно использую псевдоним для него (import pandas as pd и использовать pd везде).