You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Dash应用至Render时从GitHub读取Excel文件失败的问题

解决Dash部署到Render时读取GitHub Excel文件的问题

错误原因分析

你遇到的所有问题本质分为两类:路径配置错误和GitHub文件URL使用错误,对应具体情况:

  • 相对路径错误:你写的.\assets"file_name.xlsx"存在语法错误(引号位置错误),且需确认仓库中assets文件夹及文件是否已正常提交、未被.gitignore排除。
  • GitHub URL错误:你使用的tree开头的URL是网页浏览地址,返回的是HTML页面而非Excel原始二进制内容,这才导致格式识别、解压类错误。

正确解决方案

方案1:使用仓库相对路径(推荐)

Render部署时项目根目录对应GitHub仓库根目录,只要文件在仓库中,直接用正确相对路径即可:

import pandas as pd

# 正确相对路径写法,指定openpyxl引擎适配xlsx格式
df = pd.read_excel("./assets/2024_Pitching_Logs.xlsx", 
                   usecols=["Name", "Date", "Opp", "W", "L", "IP", "BF", "H", "R", "ER", "HR", "BB", "SO","Pit"],
                   engine="openpyxl")

注意事项:

  • 确认assets文件夹和Excel文件已提交到GitHub,未被.gitignore规则排除。
  • 查看Render构建日志,确认文件已被正常拉取(无忽略assets的提示)。

方案2:使用GitHub原始文件URL

若需通过URL读取,必须替换为GitHub的原始文件地址(将tree替换为raw):

import pandas as pd
import requests
from io import BytesIO

# 替换tree为raw,获取文件原始二进制数据
url = "https://github.com/mtdewrocks/matchup/raw/072ac999722ded50e8b2eeb649c75f091a8ecbcb/assets/2024_Pitching_Logs.xlsx"
response = requests.get(url)
response.raise_for_status()  # 校验请求是否成功
df = pd.read_excel(BytesIO(response.content), 
                   usecols=["Name", "Date", "Opp", "W", "L", "IP", "BF", "H", "R", "ER", "HR", "BB", "SO","Pit"],
                   engine="openpyxl")

额外排查步骤

  1. 验证GitHub文件路径:在仓库网页中点击目标文件,复制Raw按钮的URL,确保与代码中一致。
  2. 检查Render文件存在性:进入Render项目控制台的Shell,执行ls assets/命令确认文件存在。
  3. 确认依赖安装:requirements.txt中需包含pandas、openpyxl、requests,Render会自动安装这些依赖。

内容的提问来源于stack exchange,提问作者Shawn Schreier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 13:43:11