我正在尝试使用nginx(1)、gunicorn(2)、git(3)和supervisor(4)将flask应用部署到ec2实例上。我已经设置好了nginx,git和gunicorn,但是我在编写supervisor脚本时遇到了麻烦。
我无法使supervisor在virtualenv的上下文环境中启动gunicorn。
当我在virtualenv之外运行
我无法使supervisor在virtualenv的上下文环境中启动gunicorn。
当我在virtualenv之外运行
gunicorn run:app
时,它会返回:ImportError: No module named flask
当我在虚拟环境中运行相同的命令时,它可以正常工作。
当我在虚拟环境之外运行相同的命令,但指定虚拟环境中的gunicorn(即/var/www/sitename/env/bin/gunicorn run:app
),它也可以正常工作。
这是一个问题,我无法解决,但我想如果我能让supervisor在虚拟环境内运行gunicorn,那就不会有问题了,但我也做不到。
我尝试在supervisor脚本中添加两个程序,一个用于启动虚拟环境,另一个用于gunicorn,将两个命令使用引号加在一起,这与一个类似的SO答案建议的方式相同,使用&&
来组合激活虚拟环境和启动gunicorn,声明一个environment=PATH=
变量以及其他一些选项;但我就是无法让它工作。
我不知道我做错了什么或者还有什么别的方法可尝试;有谁知道我现在该怎么办吗?
我正在运行python3 - 我读到supervisor仅限于v2,但其他人在答案中提到它只是一个任务管理器,这应该没有关系。