python - 错误 : gunicorn: Failed to find application object 'app' in 'app'

标签 python python-3.x gunicorn pipenv

这是我的代码:

应用.py

from flask_graphql import GraphQLView
from app.infrastructure.graphql import schema
from app.infrastructure.api_resource import app

app.add_url_rule('/graphql', view_func=GraphQLView.as_view('graphql', schema=schema, graphiql=True))

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

api_resource.py

import app.infrastructure.repository as repository
from flask import request, url_for
from flask_restplus import Api, Resource, fields
from sqlalchemy_pagination import paginate
from sqlalchemy_fulltext import FullTextSearch

app = repository.app
api = Api(app, version='0.1', title='xxxxx',
          description='xxxxx')
...

存储库.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from app.domain.model import Base

connection_string = 'xxxxxx'

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = connection_string
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app, metadata=Base.metadata)

但是,当我执行 gunicorn 命令“gunicorn app: app”时,出现此错误:

Failed to find application object 'app' in 'app'

我在 ubuntu 16.04 上使用 pipenv whith pipenv shell,但我也尝试了一个 docker 容器并得到了同样的错误。 这是我的 pip 文件:

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[dev-packages]

[packages]
flask-graphql = "*"
flask-sqlalchemy = "*"
sqlalchemy-fulltext-search = "*"
graphene-sqlalchemy = ">=2.0"
flask-marshmallow = "*"
sqlalchemy-pagination = "*"
flask-restplus = "*"
requests = "*"
mysqlclient = "*"
gunicorn = "*"

[requires]
python_version = "3.6"

我做错了什么?

最佳答案

您有一个名为 app 的文件夹(如文件中的导入行所示)和一个 app.py 文件。

Gunicorn 将尝试在 app 模块中找到 app WSGI 变量,在您的例子中它被标识为 app/__init__.py

您需要重命名您的文件夹或您的 app.py 文件以避免此冲突。

关于python - 错误 : gunicorn: Failed to find application object 'app' in 'app' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50157243/

相关文章:

python-3.x - 如何从 Adwords API 中提取数据并放入 Pandas 数据框

django - 数以千计的外来 unicorn worker

python - Twilio Auth Windows 环境变量

python - IPython `display` 到字符串

python - 如何让pip将包安装到虚拟环境中?

python - Django+Gunicorn+nginx Internal Server Error,错误在哪里,如何解决?

python - 使用gunicorn时没有名为 'flask_cors'的模块

python - 如何从Python列表中删除常用单词?

python AWS boto3为文件上传创建预先签名的url

python - 如何为Python 2.7和Python 3.4设置两个不同的pip版本?