Python 如何使用Gunicorn和Nginx部署Flask应用程序

Python 如何使用Gunicorn和Nginx部署Flask应用程序,python,nginx,virtualenv,gunicorn,Python,Nginx,Virtualenv,Gunicorn,好的,我是Python/Flask部署的新手,并且正在学习教程 这是我的系统文件: [Unit] Description=Gunicorn instance to serve myapp After=network.target [Service] User=deployer Group=www-data WorkingDirectory=/home/deployer/myapp Environment="PATH=/home/deployer/myapp/myapp_env/bin" Exe

好的,我是Python/Flask部署的新手,并且正在学习教程

这是我的系统文件:

[Unit]
Description=Gunicorn instance to serve myapp
After=network.target

[Service]
User=deployer
Group=www-data
WorkingDirectory=/home/deployer/myapp
Environment="PATH=/home/deployer/myapp/myapp_env/bin"
ExecStart=/home/deployer/myapp/myapp_env/bin/gunicorn --workers 3 --bind unix:myapp.sock -m 007 appserver:gunicorn_app

[Install]
WantedBy=multi-user.target
但它不起作用。我得到
主进程退出,code=退出,status=203/EXEC
/root/myapp/myapp\u env/bin/python3:错误的解释器:权限被拒绝

如果我
cd
进入myapp目录并发出如下gunicorn命令:

gunicorn --workers 3 --bind unix:smarrttrader_api.sock -m 007 appserver:gunicorn_app
一切正常。如果我从我的应用程序目录中选择哪个gunicorn,我将获得
/usr/local/bin/gunicorn
,并尝试从服务器中的其他位置运行(),如下所示:

/usr/local/bin/gunicorn --workers 3 --bind unix:smarrttrader_api.sock -m 007 appserver:gunicorn_app

它不工作,我收到以下错误:
ImportError:没有名为“appserver”的模块
,因此如何才能使其工作?

手动运行gunicorn时是否激活了virtualenv?看起来您的权限有问题,而且您不是手动运行同一个gunicorn exec,而是在您的服务中运行。不,我故意停用了我的virtualenv。是的,我怀疑同样的问题,但我不知道如何解决。似乎您有两个gunicorn实例,一个来自二进制包(指向/usr/local/bin/gunicor),另一个作为python包。首先去掉二进制软件包。还有,你为什么要得到
/root/myapp/myapp_env/bin/python3
,根目录从哪里来,整个安装程序应该作为“deployer”用户运行,/root中有什么?