EC2 AWS上的Python Flask应用程序

EC2 AWS上的Python Flask应用程序,python,amazon-ec2,flask,Python,Amazon Ec2,Flask,我正在尝试在AmazonLinuxAMI上运行一个简单的PythonFlask应用程序。我能够显示AmazonLinuxAMI测试页面,但是当我尝试创建正确的配置来运行我的应用程序时,我总是面临同样的问题 [Fri Sep 16 12:56:39.190230 2016] [:error] [pid 17977] [remote 77.246.17.229:59978] mod_wsgi (pid=17977): Target WSGI script '/var/www/flaskapp/app

我正在尝试在AmazonLinuxAMI上运行一个简单的PythonFlask应用程序。我能够显示AmazonLinuxAMI测试页面,但是当我尝试创建正确的配置来运行我的应用程序时,我总是面临同样的问题

[Fri Sep 16 12:56:39.190230 2016] [:error] [pid 17977] [remote 77.246.17.229:59978] mod_wsgi (pid=17977): Target WSGI script '/var/www/flaskapp/app.wsgi' cannot be loaded as Python module.
[Fri Sep 16 12:56:39.190239 2016] [:error] [pid 17977] [remote 77.246.17.229:59978] mod_wsgi (pid=17977): Exception occurred processing WSGI script '/var/www/flaskapp/app.wsgi'.
[Fri Sep 16 12:56:39.190252 2016] [:error] [pid 17977] [remote 77.246.17.229:59978] Traceback (most recent call last):
[Fri Sep 16 12:56:39.190271 2016] [:error] [pid 17977] [remote 77.246.17.229:59978]   File "/var/www/flaskapp/app.wsgi", line 26, in <module>
[Fri Sep 16 12:56:39.190288 2016] [:error] [pid 17977] [remote 77.246.17.229:59978]     from app import app as application
[Fri Sep 16 12:56:39.190294 2016] [:error] [pid 17977] [remote 77.246.17.229:59978]   File "/var/www/flaskapp/app.py", line 1, in <module>
[Fri Sep 16 12:56:39.190303 2016] [:error] [pid 17977] [remote 77.246.17.229:59978]     from flask import Flask
[Fri Sep 16 12:56:39.190316 2016] [:error] [pid 17977] [remote 77.246.17.229:59978] ImportError: No module named flask
My app.wsgi:

import sys
import site
import os
# Add virtualenv site packages
site.addsitedir(os.path.join(os.path.dirname(__file__), '/env/lib/python2.7/site-packages'))

activate_this = '/var/www/flaskapp/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

# Path of execution
sys.path.insert(0,'/var/www/flaskapp')

#import the app
from app import app as application
和我的httpd.conf:

<VirtualHost *>
    ServerName ec2....
    WSGIDaemonProcess app threads=5 home=/var/www/flaskapp/ python-path=/var/www/flaskapp/env/lib/python2.7 threads=1

    DocumentRoot /var/www/flaskapp

    WSGIScriptAlias / /var/www/flaskapp/app.wsgi
    <Directory /var/www/flaskapp>
            WSGIProcessGroup app
            WSGIApplicationGroup %{GLOBAL}
            Order deny,allow
            Allow from all
    </Directory>
</VirtualHost>
所以烧瓶被安装了。为什么我不能导入它?我做错了什么


感谢您在EC2/EB上上传zip文件,通过控制台部署flask应用程序。 保持flask应用程序与PC上的普通flask应用程序一样。我想AWS会自动处理WSGI

只需执行以下操作:

application = app = Flask(__name__)
......
......
application.run()
将此主文件另存为“application.py”


通过AWS控制台压缩并上传,它将运行。

转到/var/www/html文件夹并在该目录中安装flask。 使用sudo命令进行相同的操作。
然后你的应用程序应该可以运行,

输入到
WSGIDaemonProcess
python路径应该指向
site-packages
目录。如果我将python路径更改为/var/www/flaskapp/env/lib/python2.7/site-packages,我会得到:从markupsafe导入标记,转义,soft_unicode ImportError:没有名为markupsafeWelcome的模块。请提供此解决方案正常工作的原因。您使用的是哪台web服务器?Ngynix还是Apache?
click==6.6
Flask==0.11.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.11
application = app = Flask(__name__)
......
......
application.run()