私はAmazon Linux AMIでシンプルなpythonフラスコアプリケーションを実行しようとしています。私は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ウィットピップフリーズにインストールされて:
click==6.6
Flask==0.11.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.11
ですので、Flaskがインストールされています。なぜ私はそれをインポートすることができないのですか?私は間違っているの?
おかげEC2/EBで
'WSGIDaemonProcess'への' python-path'入力は 'site-packages'ディレクトリを指すべきです。 – Suever
私がpython-pathを/var/www/flaskapp/env/lib/python2.7/site-packagesに変更した場合は、次のようになります: from markupsafe import Markup、escape、soft_unicode ImportError:モジュールがマークアップセーフではありません – Thomas