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

推送项目至Heroku出现No such file or directory报错如何解决

Heroku部署提示找不到config.yml的修复方案

报错核心原因是路径指向错误+对Heroku部署目录结构的认知偏差,你看到的报错路径是/app/venv/config.yml,说明代码在虚拟环境目录下找配置文件,而不是你认为的项目根目录,按以下步骤排查修复即可:

  • 修正硬编码的错误路径
    Heroku部署时,项目代码会直接放在容器的/app目录下,/app/venv是平台自动生成的Python虚拟环境目录,仅存储安装的依赖包,不会同步你项目内的自定义配置文件。不要在代码里写死/app/venv/config.yml这类绝对路径,改用基于当前运行文件的动态路径拼接,Python示例代码:
import os
# 以当前脚本所在目录为基准,拼接配置文件路径,兼容本地/部署环境
CONFIG_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "config.yml")
  • 验证config.yml是否被推送到Heroku端
    Heroku基于git推送的内容构建部署,如果你的.gitignore文件中配置了config.yml、*.yml这类忽略规则,本地存在的文件不会被提交到git,自然也不会被推送到Heroku容器。本地仓库执行以下命令验证:
git ls-files | grep config.yml

如果命令无输出,说明文件未被git追踪,需要删除.gitignore里对应的忽略规则,将config.yml加入git提交后重新推送部署。

  • 敏感配置优先用环境变量存储
    如果config.yml里存的是密钥、令牌这类敏感信息,不建议把文件直接提交到代码仓库,直接在Heroku后台的Config Vars中配置对应键值,代码中优先从环境变量读取配置,这也是Heroku官方推荐的配置方案,安全性更高。

修复后可以执行heroku run bash命令进入部署后的运行容器,执行ls /app查看目录下的实际文件列表,确认配置文件位置后再启动服务验证即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:12:22