【问题标题】:Heroku doesn't recognized installed packagesHeroku 无法识别已安装的软件包
【发布时间】:2021-11-19 00:05:13
【问题描述】:

我正在尝试将我的 Flask 应用部署到 Heroku,但是,虽然部署成功,但我的 Heroku 应用遇到以下错误,导致它无法运行:

即使我已经使用pip install flask_sqlalchemy 安装了软件包。

我的app.py 如下:

import flask
from flask import Flask, jsonify, request, render_template, url_for
import json
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.sql import text

import pickle
with open('models/deploy_model.sav', 'rb') as f:
    model = pickle.load(f)

app = Flask(__name__, template_folder='templates')

db_name = 'schema.sql'

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + db_name

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)

class Mood(db.Model):
    __tablename__ = 'result'
    index = db.Column(db.Integer, primary_key=True)
    timestamp = db.Column(db.DateTime)
    results = db.Column(db.Float)

@app.route('/', methods=['GET'])
def main():
    table = Mood.query.with_entities(Mood.results).all()
    table = [r for r, in table]
    return render_template('main.html', results =table)

if __name__ == '__main__':
    app.run(debug=True)

我的requirements.txt 文件目前也包含这些包:

...
Flask==2.0.1
Flask-SQLAlchemy==2.5.1
...

为什么 Heroku 找不到flask_sqlalchemy?我该如何解决?

【问题讨论】:

  • Please don't post screenshots of text。它们无法被屏幕阅读器等自适应技术的用户搜索或复制,甚至无法使用。相反,将代码作为文本直接粘贴到您的问题中。如果选择它并单击{} 按钮或Ctrl+K,代码块将缩进四个空格,这将导致它被呈现为代码。

标签: python flask heroku sqlalchemy


【解决方案1】:

虽然我已经用pip install flask_sqlalchemy安装了包

不清楚您是在开发机器上还是在 Heroku dyno 上运行它,但无论哪种情况,它都不会对在 Heroku 上运行的应用程序产生任何影响。

如果您在本地运行它,这会将flask_sqlalchemy 安装到您的本地 环境中。 Heroku 无法知道你在本地安装了什么;它从您提交的requirements.txt 文件或PipfilePipfile.lock 安装依赖项,具体取决于您使用的工具。

如果您在 Heroku 上运行它,它将在一次性测功机中运行,一旦您停止与之交互,该测功机就会被丢弃。所有运行时依赖项必须在您的需求文件中声明,以便 Heroku 可以将它们包含在您的应用程序的 slug 中。

这将我们引向您的下一个陈述:

而我的requirements.txt 文件目前也包含这些包:

...
Flask==2.0.1
Flask-SQLAlchemy==2.5.1
...

此文件是否在您的存储库的根目录中?必须是,否则 Heroku 会忽略它。

你也有PipfilePipfile.lock吗? Heroku 将使用 Pipenv 从 那些 文件中安装依赖项(如果它们存在)。如果找不到 Pipenv 文件,它将仅使用 pip 从 requirements.txt 文件安装软件包。任选其一。

如果这些建议都没有帮助,请编辑您的问题并显示您的构建日志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 2020-06-11
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 2022-07-13
    相关资源
    最近更新 更多