python - Heroku 无法识别已安装的软件包
问题描述
我正在尝试将我的 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
?我该如何解决?
解决方案
即使我已经安装了软件包
pip install flask_sqlalchemy
目前尚不清楚您是在开发机器上还是在 Heroku dyno 上运行它,但无论哪种情况,它都不会对在 Heroku 上运行的应用程序产生任何影响。
如果您在本地运行它,它将安装flask_sqlalchemy
到您的本地环境中。Heroku 无法知道你在本地安装了什么;它会从您提交的requirements.txt
文件或Pipfile
andPipfile.lock
中安装依赖项,具体取决于您使用的工具。
如果您在 Heroku 上运行它,它将在一次性测功机中运行,一旦您停止与之交互,该测功机就会被丢弃。所有运行时依赖项都必须在您的需求文件中声明,以便 Heroku 可以将它们包含在您的应用程序的 slug 中。
这将我们引向您的下一个陈述:
我的
requirements.txt
文件目前还包含这些包:... Flask==2.0.1 Flask-SQLAlchemy==2.5.1 ...
该文件是否在存储库的根目录中?必须是这样,否则 Heroku 会忽略它。
你也有一个Pipfile
和Pipfile.lock
?Heroku 将使用 Pipenv 从这些文件中安装依赖项(如果它们存在)。requirements.txt
如果找不到 Pipenv 文件,它只会使用 pip 从文件中安装包。选择一个或另一个。
如果这些建议都没有帮助,请编辑您的问题并显示您的构建日志。
推荐阅读
- vue.js - 没有构建步骤的 Blade 模板中的 VueJS
- utf-8 - 查找自动编码检测的原因(UTF-8 与 Windows-1252)
- django - DRF:在基本 url 路由路径上禁用 GET 请求
- http - 没有 IEnumerator 或协程的 Unity WebGL HTTP 请求
- selenium - 詹金斯在电子邮件中附加本地图像
- c# - How to link Directory with multiple users with login
- node.js - 创建新的角度应用程序时出错(npm ERR!404 Not Found:@angular/animations@~7.1.0。)
- python - Django后台任务抛出异常但正确执行
- php - 我的网站坏了,它显示“致命错误:[] 运算符不支持输入的字符串”
- typescript - 量角器 - 首先它通过给出一些误导性错误来阻止总是失败