我有一个 Flask 应用程序,我试图通过 Gunicorn 提供服务。
我正在使用 virtualenv 和 python3。如果我将 venv cd 激活到我的应用程序基目录,然后运行:
gunicorn mysite:app
I get:
Starting gunicorn
Listening at http://127.0.0.1:8000
DEBUG:mysite.settings:>>Config()
...
Failed to find application: 'mysite'
Worker exiting
Shutting down: master
Reason: App failed to load
查看 /etc/nginx/sites-available 我只有文件“default”。在启用站点中我没有文件。
在我的 nginx.conf 文件中,我有:
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
应用程序结构:
mysite #this is where I cd to and run gunicorn mysite:app
--manage.py
--/mysite
----settings.py
----__init__.py
in manage.py
对于我的网站,我有以下内容:
logger.debug("manage.py entry point")
app = create_app(app_name)
manager = Manager(app)
if __name__ == "__main__":
manager.run()
In __init__.py
file:
def create_app(object_name):
app = Flask(__name__)
#more setup here
return app
In my settings.py
在应用程序目录中
class Config(object):
logger.debug(">>Config()") #this logs OK so gunicorn is at least starting in correct directory
如果我运行,则从 virtualenv 内部
print(sys.path)
我找到了这个 virtualenv 的 python 和站点包的路径。
根据我所读到的内容,启动gunicorn只需安装并运行gunicorn mysite:app即可
从 mysite 的父目录运行 Gunicorn 我得到同样的 failed to find application: 'mysite', App failed to load 错误,但没有记录 DEBUG...Config() (因为我们显然位于错误的目录中)开始)。从 mysite/mysite 运行 Gunicorn(明显错误),我在工作进程中遇到异常,ImportError: No module named 'mysite'。
关于如何让gunicorn运行的任何线索?