'没有名为'deploy'的模块:此错误是什么意思,我该如何解决?

时间:2019-07-27 11:29:25

标签: python rest heroku flask

我创建了我的第一个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')

我在做什么错?如果相关,我关注了此博客herethis YouTube视频。

编辑1 :文件夹中的文件为-上面server.pyrequirements.txtProcfileruntime.txt和{{ 1}}-在此代码中连接到的数据库。储存库为here

编辑2 :我尝试按照@Stanley的建议卸载并安装Flask,但不幸的是,问题仍然存在。

编辑3 arsenal.db包含Procfile

1 个答案:

答案 0 :(得分:0)

  

Procfile包含web: gunicorn deploy: app

此文件的格式非常重要。如果web:之前确实有空格,请将其删除。

参数传递给gunicorn tell it what module and variable it should us as the WSGI entry point。在您的情况下,模块为server(文件名),可调用的WSGI为api

总而言之,您的Procfile应该包含:

web: gunicorn server:api

请注意,serverapi之间没有空格。