Приложение Dash, развернутое на Heroku, не может читать файл CSV

Я пытаюсь использовать Heroku для развертывания моего приложения Dash, которое должно считывать данные из локального файла CSV. Развертывание прошло успешно, но если я открою URL-адрес приложения, появится ошибка приложения.

Я проверил журналы Heroku и нашел FileNotFoundError, который сообщает мне, что файл CSV, из которого приложение считывает данные, не существует, но он работает, если я запускаю приложение локально. Фактически, файл CSV существует в моем каталоге, поэтому я хочу знать, есть ли другой способ сделать это.

РЕДАКТИРОВАТЬ: Собственно, так начинается мой app.py код. FileNotFoundError указывает на ту часть, где я прочитал файл CSV с pandas. Как я могу заставить мое приложение читать файл CSV?

import dash
import dash_core_components as dcc
import dash_html_components as html
import dash_table as tablefrom

from dash.dependencies import Input, Output
import plotly as py
import plotly.graph_objs as go
import numpy as np
import pandas as pd

filepath='C:\\Users\\DELL\\Desktop\\EDUCATE\\DATA CSV\\crop_prod_estimates_GH.csv' 

data=pd.read_csv(filepath,sep=',',thousands=',')
data.dropna(inplace=True)

data[['REGION','DISTRICT','CROP']]=data[['REGION','DISTRICT','CROP']].astype('category')
data.CROP=data.CROP.str.strip()
data.drop(data.columns[0],axis=1,inplace=True)

person user11836845    schedule 25.07.2019    source источник
comment
Существует ли CSV-файл на Heroku? Вы должны убедиться, что путь к файлу позволяет вашему приложению Dash найти этот файл. Будет полезно, если вы также разместите соответствующий код.   -  person Mihai Chelaru    schedule 25.07.2019
comment
Файл csv находится на моем жестком диске. Как я могу отправить его на героку?   -  person user11836845    schedule 25.07.2019
comment
Контролируется ли версия вашего CSV-файла, когда вы нажимаете на Heroku с помощью git? Какой путь вы используете в своем коде для чтения файла CSV? Вероятно, вы сможете добавить его в систему управления версиями и отправить или, в качестве альтернативы, сделать что-то вроде того, что предлагается в это сообщение о переполнении стека.   -  person Mihai Chelaru    schedule 25.07.2019
comment
Я развернул приложение через панель управления heroku, а не через терминал, поэтому я видел что-то подобное   -  person user11836845    schedule 25.07.2019
comment
Приложение работает на Heroku, поэтому у него нет доступа к вашему локальному компьютеру. Вы не можете указать ему путь к файлу со своего компьютера и ожидать, что он будет работать таким же образом, особенно если файл даже отсутствует на Heroku. Вам нужно найти способ загрузить файл в Heroku, а затем прочитать его оттуда, используя правильный путь, или, в качестве альтернативы, разместить файл где-нибудь в Интернете и заставить приложение перейти по URL-адресу и прочитать CSV-файл оттуда. Я бы порекомендовал вам научиться использовать интерфейс командной строки и вместо этого развернуть приложение с помощью Git.   -  person Mihai Chelaru    schedule 25.07.2019
comment
Хорошо, я попробую. У меня просто возникла идея загрузить файл csv в свой репозиторий github и прочитать его с URL-адресом в моем app.py   -  person user11836845    schedule 26.07.2019
comment
Хорошо, я попробую. У меня просто возникла идея загрузить файл csv в свой репозиторий github и прочитать его с URL-адресом в моем app.py   -  person user11836845    schedule 26.07.2019


Ответы (3)


Решил !!!!!!!!!

Я загрузил свой файл данных csv в свой репозиторий github, и app.py прочитал данные из него. Например:

url = 'https://raw.githubusercontent.com/your_account_name/repository_name/master/file.csv '

df = pd.read_csv (url, sep = ",")

df.head ()

person user11836845    schedule 26.07.2019
comment
как так получилось, что не поднял даже один большой палец? - person yts61; 10.02.2020
comment
Спасибо за уточнение - person bsekili; 28.05.2020

Вы можете сохранить файл csv в том же месте, где существует ваш app.py.

Меняться от:

filepath='C:\\Users\\DELL\\Desktop\\EDUCATE\\DATA CSV\\crop_prod_estimates_GH.csv' 

To:

filepath='crop_prod_estimates_GH.csv' 

Он должен работать.

person ravinder kumar    schedule 01.06.2020

Загрузите ваш CSV-файл на облачный сервер:

urlfile = 'https://res.cloudinary.com/hmmpyq8rf/raw/upload/v1604671300/localisationDigixpress_n8s98k.csv'

df = pd.read_csv(urlfile,sep=",")

df.head()
person Gildas Nouebissi    schedule 06.11.2020