Чтение 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...

сформировать путь к файлу данных на основе имени файла модуля.

Вернуться на верх