aws ec2 - 用bash命令运行python uwsgi继续返回 - 找不到python应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aws ec2 - 用bash命令运行python uwsgi继续返回 - 找不到python应用程序相关的知识,希望对你有一定的参考价值。

我正在尝试按照此链接中的教程运行我的烧瓶应用程序 - https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-14-04#configure-uwsgi

使用亚马逊服务器ec2运行此...

Amazon Linux AMI 2017.09.1(HVM),所有选项都免费提供。

我的文件结构如下:

/home/ec2-user/login_test/login_test/app.py
                                    /wsgi.py
                         /venv/

所以我给了一个uwsgi --socket 0.0.0.0:8000 --protocol=http -w wsgi命令,如教程中所述,“测试uWSGI服务”部分,这将返回:

--- no python application found, check your startup logs for errors --- [pid: 24218|app: -1|req: -1/1] 127.0.0.1 () {24 vars in 257 bytes} [Wed Apr 11 07:01:38 2018] GET / => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0) 与浏览器返回Internal Server Error

所以......我应该怎么做才能检查?如果我没有uwsgi(只是python app.py命令)和我的家用电脑上的cmd(Windows 10)激活它,应用程序工作正常

编辑:我的wsgi.py内容:

from app import app as application

if __name__ == "__main__":
    application.run()
答案

这是一个最小的工作示例:

我是个i.朋友:

from flask_app import app

flask_app.朋友:

来自flask进口烧瓶

app = Flask('my test app')

@app.route("/ping")
def ping():

    return 'pong'

命令:uwsgi --socket 0.0.0.0:5000 --protocol=http -w wsgi:app

或没有wsgi.py文件: uwsgi --socket 0.0.0.0:5000 --protocol=http -w flask_app:app

需要注意的事项:

  • wsgi :( -w参数)表示你有一个名为:wsgi.py的文件
  • app(-w参数)是导入的烧瓶对象(Flask())

以上是关于aws ec2 - 用bash命令运行python uwsgi继续返回 - 找不到python应用程序的主要内容,如果未能解决你的问题,请参考以下文章

启动 AWS EC2 实例时如何使用 bash 脚本运行 postgres?

AWS EC2 启动配置用户数据 - 找不到命令

EC2_HOME 未设置。从 Cron 运行 AWS 命令

AWS EC2:允许特定用户运行特定命令

AWS Java SDK - 在 EC2 实例上使用 SSM 运行命令

如何将 redshift 数据库连接到在 ec2 实例上运行的 bash 脚本