Чтение CSV из модели Django, Нет такого файла или каталога
FileNotFoundError: [Errno 2] No such file or directory: 'static/data/cleanHeart.csv
Я получаю эту ошибку при попытке доступа к моему csv файлу в моем models.py файле в рамках модели с именем Patient и метода с именем perform_prediction. Моя цель состоит в том, чтобы с помощью некоторых атрибутов, доступных в Patient, создать предсказание с помощью данных.
def perform_prediction(self):
main_df = pd.read_csv('static/data/cleanHeart.csv')
regu = linReg.fit(main_df[['Age','Sex', 'ChestPainType', 'RestingBP', 'Cholesterol', 'FastingBS', 'RestingECG', 'MaxHR', 'ExerciseAngina', 'Oldpeak', 'ST_Slope']],main_df['HeartDisease'])
tester = regu.predict([[65,0,3,140,306,1,0,87,1,1.5,0]])
return tester
Чтобы убедиться в правильности относительного пути, я создал acceptablepath.py в точно таком же месте с кодом метода, и успешно смог получить доступ к cleanHeart.csv.
Я вызываю эту функцию из шаблона. Чтобы убедиться, что проблема не в этом, я создал простой метод ping_me, который без проблем возвращается в шаблон.
def ping_me(self):
return 'ping!'
Связана ли эта проблема с settings.py каким-либо образом? Я даже поместил cleanHeart.csv в тот же каталог с models.py и все равно не могу получить к нему доступ.
Нет незавершенных миграций.
Относительные пути, такие как 'static/data/cleanHeart.csv', относятся к рабочему каталогу вашего процесса, который может быть или не быть там, где находится manage.py. (Блуждающий вызов os.chdir() в любом месте вашего проекта также разрушит это предположение.)
Если ваш код находится, скажем, в myapp/predictions.py, то поместите cleanHeart.csv рядом с этим файлом, т.е. myapp/cleanHeart.csv, и измените все на
import pandas as pd
import os
csv_filename = os.path.join(os.path.dirname(__file__), 'cleanHeart.csv')
def perform_prediction():
main_df = pd.read_csv(csv_filename)
# ... etc...
сформировать путь к файлу данных на основе имени файла модуля.