【问题标题】:Dash app deployed on Heroku cannot read CSV fileHeroku 上部署的 Dash 应用程序无法读取 CSV 文件
【发布时间】:2019-07-25 14:18:47
【问题描述】:

我正在尝试使用 Heroku 部署我的 Dash 应用程序,该应用程序应该从本地 CSV 文件中读取数据。部署成功,但如果我打开应用程序的 URL,它会给我一个应用程序错误。

我检查了 Heroku 日志,发现 FileNotFoundError 告诉我应用程序从中读取数据的 CSV 文件不存在,但如果我在本地运行应用程序,它就可以工作。事实上,CSV 文件存在于我的目录中,所以我想知道是否有其他方法可以解决此问题。

编辑:实际上,这就是我的app.py 代码的开始方式。 FileNotFoundError 指向我使用 pandas 读取 CSV 文件的部分。 如何让我的应用读取 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)

【问题讨论】:

  • Heroku 上是否存在 CSV 文件?您应该检查文件的路径是否允许您的 Dash 应用程序找到有问题的文件。如果你也 post the relevant code 会有所帮助。
  • csv 文件在我的硬盘上。如何将其发送到 heroku?
  • 当您使用 git 推送到 Heroku 时,您的 CSV 文件是否受版本控制?您在代码中使用什么路径来读取 CSV 文件?您应该可以将其添加到版本控制并推送它,或者执行this Stack Overflow post 中建议的操作。
  • 我通过 heroku 仪表板而不是终端部署了应用程序,所以我确实看到了类似的东西
  • 该应用在 Heroku 上运行,因此无法访问您的本地计算机。你不能给它一个从你的计算机到文件的路径并期望它以相同的方式工作,特别是如果文件甚至不存在于 Heroku 上。您需要找到一种方法将文件上传到 Heroku,然后使用正确的路径从那里读取它,或者将文件托管在网上某处,让应用程序转到 URL 并从那里读取 CSV 文件。我会推荐你​​learn to use the CLI and deploy your app with Git instead

标签: python-3.x plotly-dash heroku-cli


【解决方案1】:

解决了!!!!!!!!!

我将我的 csv 数据文件上传到我的 github 存储库并让 app.py 从中读取数据。like:

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

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

df.head()

【讨论】:

  • 怎么连一个大拇指都没有?
  • 感谢详细说明
【解决方案2】:

您可以将 csv 文件存储在您的 app.py 所在的相同位置。

更改自:

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

收件人:

filepath='crop_prod_estimates_GH.csv' 

它应该工作。

【讨论】:

    【解决方案3】:

    在 cloudinary 上上传您的 csv 文件:

    urlfile = 'https://res.cloudinary.com/hmmpyq8rf/raw/upload/v1604671300/localisationDigixpress_n8s98k.csv'
    
    df = pd.read_csv(urlfile,sep=",")
    
    df.head()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-25
      • 2020-04-07
      • 2021-04-29
      • 1970-01-01
      • 2016-06-23
      • 2013-08-22
      • 2018-04-11
      • 1970-01-01
      相关资源
      最近更新 更多