Flask应用通过GitHub集成部署至Heroku出现H10报错问题求助
问题排查与解决方法
- 导入缺失修复:你的
app.py中调用了os.getenv()读取环境变量,但未导入os模块,运行时会直接抛出未定义错误导致应用崩溃。同时你从Flask导入的json模块用于解析接口返回的场景,直接使用标准库json更稳妥,修改导入代码如下:
from flask import Flask, render_template, request import requests import os import json
- 依赖文件名修正:你的依赖清单文件命名为
requierements.txt存在拼写错误,正确命名应为requirements.txt,拼写错误会导致Heroku无法识别并安装项目依赖,包括启动需要的gunicorn,直接触发启动失败。 - 环境变量配置:你需要在Heroku对应应用的设置页面找到「Config Vars」配置板块,添加键为
API_KEY的配置项,值填入你申请的NASA开放平台接口密钥,否则代码读取到的API_KEY为空,请求NASA接口会直接失败。 - 稳定性优化(可选):你可以为环境变量读取添加默认值,同时为接口请求增加异常捕获逻辑,避免单环节错误直接导致整个应用崩溃:
@app.route("/") def index(): api_key = os.getenv("API_KEY", "") if not api_key: return "API密钥未配置", 500 try: req = requests.get("https://api.nasa.gov/planetary/apod?api_key=" + api_key) req.raise_for_status() data = req.json() return render_template('index.html', data=data) except Exception as e: return f"请求出错:{str(e)}", 500
内容的提问来源于stack exchange,提问作者Rafael Lopez
相关产品推荐
相关产品推荐

