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

Heroku部署Python应用时文件IO操作出现FileNotFoundError [Errno 2]

Heroku无法识别子目录内文件的原因及解决方案

核心原因

  • 路径分隔符不兼容
    你代码中使用的datafolder\\otherdata.csv是Windows系统的专属路径写法,反斜杠\是Windows的路径分隔符。而Heroku的运行环境基于Linux系统,仅识别正斜杠/作为路径分隔符,完全不支持反斜杠路径写法,因此会抛出FileNotFoundError错误。
  • 相对路径基准漂移(潜在问题)
    即使修改了路径分隔符,也有可能出现偶发的找不到文件的问题:Heroku启动应用进程时的工作目录,不一定和你项目的根目录完全对齐,硬写相对路径很容易出现基准不一致的问题。

最优解决方案

不要硬编码路径分隔符,使用Python内置的os模块动态拼接绝对路径,自动适配不同系统的路径规则:

import os
import pandas as pd

# 取当前执行脚本(main.py)所在的目录作为基准路径
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 自动适配系统的路径分隔符拼接文件路径
file_path = os.path.join(BASE_DIR, "datafolder", "otherdata.csv")
df = pd.read_csv(file_path)

这种写法在本地Windows开发环境和Heroku的Linux环境都可以正常运行,不需要针对部署环境单独修改代码。

排查补充

如果后续遇到通过Heroku bash无法看到对应文件夹和文件的情况,请检查项目根目录的.gitignore文件是否排除了datafolder目录,导致部署时没有将该目录同步到Heroku服务器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:15:04