Почему python выдает ошибку FileNotFoundError: [Errno 2] Нет такого файла или каталога, даже если файл существует?
Я пытаюсь создать модель машинного обучения и использовать django rest framework для ее подключения. Моя структура папок выглядит следующим образом
server
|
+-- chat
| |
| +-- DistilBertModel
| | |
| | +-- OurModel
| | | |
| | | +-- BERT_model.py
| | | +-- chatbot.py
| | | +-- chatbot_predict.py
| | | +-- model.sav
| | +-- data
| | | |
| | | +-- test_chatbot.csv
| | | +-- answers.json
| +-- migrations
| +-- __init__.py
| +-- admin.py
| +-- apps.py
| +-- models.py
| +-- serializers.py
| +-- tests.py
| +-- urls.py
| +-- views.py
+-- core
|
+-- templates
|
+-- db.sqlite3
|
+-- manage.py
|
+-- requirements.txt
В файле chatbot_predict.py я пытаюсь загрузить модель и получить предсказание, используя эту модель. Код выглядит следующим образом
import joblib
loaded_model = joblib.load ('model.sav')
def get_prediction (message, loaded_model = loaded_model):
return prediction
Когда я запускаю этот файл с помощью python chatbot_predict.py из командной строки, он работает нормально.
Однако когда я импортирую эту функцию get_prediction в server/chat/views.py и запускаю python manage.py runserver, она выдает ошибку
Что я делаю неправильно, чтобы получить эту ошибку FileNotFoundError ?
Это происходит потому, что файл теперь находится в другом месте, чем файл сценария python или текущий каталог.
Попробуйте указать полный путь к файлу модели (не только имя), и это должно сработать в обоих случаях.
В идеале вы должны вызывать все ваши скрипты в корневом каталоге вашего проекта (который становится рабочим каталогом) и, соответственно, указывать пути к файлам для загрузки относительно корневого каталога.