2016-09-16 6 views
0

Amazon Linux AMI에서 간단한 파이썬 플라스크 앱을 실행하려고합니다. Amazon Linux AMI 테스트 페이지를 표시 할 수 있지만 앱을 실행하기 위해 적절한 구성을 만들려고하면 언제나 같은 문제에 직면하게됩니다.EC2 AWS의 Python Flask 앱

[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 

내 app.py :

from flask import Flask 
app=Flask(__name__) 

@app.route('/') 
def home(): 
    return "Hello World!" 

if __name__ == "__main__": 
    app.run() 

내 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> 

내가 무엇을 보면 virtualenv 재치 pip 동결에 설치 :이 얻을 :

click==6.6 
Flask==0.11.1 
itsdangerous==0.24 
Jinja2==2.8 
MarkupSafe==0.23 
Werkzeug==0.11.11 

플라스크가 설치되어 있습니다. 왜 그것을 가져올 수 없습니까? 내가 뭘 잘못하고있어?

감사

EC2/EB에
+0

'WSGIDaemonProcess'에 대한'python-path' 입력은'site-packages' 디렉토리를 가리켜 야합니다. – Suever

+0

파이썬 경로를 /var/www/flaskapp/env/lib/python2.7/site-packages로 변경하면 다음과 같이 표시됩니다. from markupsafe 가져 오기 마크 업, 이스케이프, soft_unicode ImportError : 모듈 이름이 markupsafe가 아닙니다. – Thomas

답변

0

은 zip 파일을 업로드하여 콘솔을 통해 플라스크 응용 프로그램을 배포 할 수 있습니다. 플라스크 응용 프로그램을 PC의 일반 플라스크 응용 프로그램처럼 유지하십시오. AWS가 WSGI를 자동으로 처리합니다.

그냥 다음을 수행하십시오

application = app = Flask(__name__) 
...... 
...... 
application.run() 

는 "application.py"

우편으로이 주요 파일을 저장하고 AWS 콘솔을 통해 업로드하고 그것을 실행됩니다.