【发布时间】:2019-07-27 11:29:25
【问题描述】:
我创建了我的第一个 Flask 应用程序 - 一个非常基本的 API,用于从本地数据库获取数据并返回 JSON 数据。 API 在本地端口上工作。然后我尝试在 Heroku 上托管它,这也很成功——它说 Build Succeeded。
但是,当我尝试运行该应用程序时,它会抛出此应用程序错误。当我查看heroku logs --tail 时,它显示此错误:ModuleNotFoundError: No module named 'deploy'。
Here 的应用程序。
这是我的 API 代码:
from flask import Flask, request
from flask_restful import Resource, Api
from sqlalchemy import create_engine
from json import dumps
from flask_jsonpify import jsonify
db_connect = create_engine('sqlite:///arsenal.db')
app = Flask(__name__)
api = Api(app)
class Players(Resource):
def get(self):
player_dict = dict()
conn = db_connect.connect() # connect to database
query = conn.execute("SELECT * FROM Players")
players = [i for i in query.cursor.fetchall()]
for player in players:
player_dict.update({player[1]:player[2]})
return {'players': player_dict}
api.add_resource(Players, '/players') # Route_1
if __name__ == '__main__':
app.run(port='5200')
我做错了什么?我关注了这个博客here 和this YouTube 视频,以防万一。
编辑 1:文件夹中的文件是 - 以上代码在 server.py、requirements.txt、Procfile、runtime.txt 和 arsenal.db - 我连接到的数据库这段代码。仓库是here
编辑 2:我已尝试按照@Stanley 的建议卸载和安装 Flask,但不幸的是问题仍然存在。
编辑 3:Procfile 包含 web: gunicorn deploy: app
【问题讨论】:
-
文件夹设置如何,可以添加吗?
-
你的意思是文件夹里有什么?在
server.py、requirements.txt、Procfile、runtime.txt和arsenal.db中有这段代码——我在这段代码中连接的数据库。我应该更新问题以包括这些细节。 @斯坦利 -
查看代码我看不到您正在尝试导入部署甚至使用模块的实例,是有更多代码还是我忽略了什么?
-
这正是我想了解的。我不确定这个部署模块是什么以及它来自哪里。没有更多的代码或文件,你可以相信我的话。
-
我明白了,这可能有点超出我的理解,因为我精通 python,但没有像我想的那样接触烧瓶!但是通过互联网查看,似乎解决方案是 pip 卸载烧瓶并再次安装,您尝试过吗?