2016-09-20 4 views
0

Ich versuche, eine einfache App auf AWS AMI, die OpenCV-Bibliothek verwenden sollte. Ich habe eine virtuelle Maschine erstellt und OpenCV installiert. Für die Installation habe ich dieses Tutorial http://www.pyimagesearch.com/2015/06/22/install-opencv-3-0-and-python-2-7-on-ubuntu/ verfolgt und scheint auch in Ordnung zu sein, weil ich das Beispiel ausführen kann. Das Problem entsteht, wenn ich versuche, meine Flask-App zu laufen, weil ich folgende Fehlermeldung bin immer:Opencv/Flask App auf AWS AMI

[Tue Sep 20 09:58:14.117753 2016] [:error] [pid 15068] [remote 77.246.17.229:18121] Traceback (most recent call last): 
[Tue Sep 20 09:58:14.117778 2016] [:error] [pid 15068] [remote 77.246.17.229:18121] File "/var/www/flaskapp/app.wsgi", line 25, in <module> 
[Tue Sep 20 09:58:14.117822 2016] [:error] [pid 15068] [remote 77.246.17.229:18121]  from app import app as application 
[Tue Sep 20 09:58:14.117831 2016] [:error] [pid 15068] [remote 77.246.17.229:18121] File "/var/www/flaskapp/app.py", line 13, in <module> 
[Tue Sep 20 09:58:14.117878 2016] [:error] [pid 15068] [remote 77.246.17.229:18121]  from flask import (Flask, abort, flash, g, jsonify, make_response, render_template, request, session, url_for) 
[Tue Sep 20 09:58:14.117887 2016] [:error] [pid 15068] [remote 77.246.17.229:18121] File "/var/www/flaskapp/env/lib/python2.7/site-packages/flask/__init__.py", line 19, in <module> 
[Tue Sep 20 09:58:14.117916 2016] [:error] [pid 15068] [remote 77.246.17.229:18121]  from jinja2 import Markup, escape 
[Tue Sep 20 09:58:14.117923 2016] [:error] [pid 15068] [remote 77.246.17.229:18121] File "/var/www/flaskapp/env/lib/python2.7/site-packages/jinja2/__init__.py", line 33, in <module> 
[Tue Sep 20 09:58:14.117951 2016] [:error] [pid 15068] [remote 77.246.17.229:18121]  from jinja2.environment import Environment, Template 
[Tue Sep 20 09:58:14.117965 2016] [:error] [pid 15068] [remote 77.246.17.229:18121] File "/var/www/flaskapp/env/lib/python2.7/site-packages/jinja2/environment.py", line 13, in <module> 
[Tue Sep 20 09:58:14.118148 2016] [:error] [pid 15068] [remote 77.246.17.229:18121]  from jinja2 import nodes 
[Tue Sep 20 09:58:14.118157 2016] [:error] [pid 15068] [remote 77.246.17.229:18121] File "/var/www/flaskapp/env/lib/python2.7/site-packages/jinja2/nodes.py", line 19, in <module> 
[Tue Sep 20 09:58:14.118287 2016] [:error] [pid 15068] [remote 77.246.17.229:18121]  from jinja2.utils import Markup 
[Tue Sep 20 09:58:14.118296 2016] [:error] [pid 15068] [remote 77.246.17.229:18121] File "/var/www/flaskapp/env/lib/python2.7/site-packages/jinja2/utils.py", line 531, in <module> 
[Tue Sep 20 09:58:14.118418 2016] [:error] [pid 15068] [remote 77.246.17.229:18121]  from markupsafe import Markup, escape, soft_unicode 
[Tue Sep 20 09:58:14.118436 2016] [:error] [pid 15068] [remote 77.246.17.229:18121] ImportError: No module named markupsafe 

aber ich überprüft alle installierten Module auf der virtuellen Maschine mit dem Befehl einfrieren pip ich die folgende erhalten:

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

Also MarkupSafe ist installiert und aktualisiert eine der letzten Version. So

begann das Problem zu denken in meiner .wgsi Datei oder in der httpd.conf sein könnte Hier app.wsgi:

import sys 
import site 
import os 

# Add virtualenv site packages 
site.addsitedir(os.path.join(os.path.dirname(__file__), '/var/www/flaskapp/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 

Und dieser ist der httpd.conf: Listen 80

<VirtualHost *> 
     ServerName ec2... 
     WSGIDaemonProcess app threads=5 home=/var/www/flaskapp/ python-path=/var/www/flaskapp/env/lib/python2.7/site-packages 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> 

Aber ich bin nicht in der Lage, das Problem herauszufinden. Irgendeine Idee darüber, warum ich diesen Fehler bekomme?

Wenn ich versuche, meine app.wgsi zu lib64 statt nur lib zu verweisen, wird der Fehler: ImportError: numpy.core.multiarray konnte nicht importiert werden. Ich überprüfte die differente Website-Pakete in lib und lib64 und ich habe diese Konfiguration:

lib: klicken - easy_install.pyc - itsdangerous.py - markerlib - Setuptools - Click-6.6-py2.7.egg-info - flask - itsdangerous.pyc - pip - setuptools-12.0.5.dist-info - cv2.so - Flask-0.11.1.dist-info - jinja2 - pip-6.0.8.dist-info - werkzeug - easy_install.py - itsdangerous-0,24-py2.7.egg-info - Jinja2-2.8.dist-info - pkg_resources - Werkzeug-0.11.11.dist-info

während in lib64 ich habe: markupsafe MarkupSafe-0,23-py2. 7.egg-info numpy numpy-1.11.1-py2.7.egg-info

Es scheint der mo d_wsgi ist für Python 2.6.9 konfiguriert und ich benutze Python 2.7. könnte das das problem sein?

Antwort

0

Sie können kein mod_wsgi kompiliert für Python 2.6 nehmen und versuchen, es zu zwingen, eine virtuelle Python-Umgebung mit Python 2.7 zu verwenden. Sie müssen mod_wsgi deinstallieren und es erneut von einem Binärpaket oder Quellcode installieren, wo es jedoch für Python 2.7 kompiliert wird. Es ist keine Konfigurationsoption, um zu ändern, welche Version von Python verwendet wird. Es muss für die korrekte Python-Version kompiliert werden.

Verwandte Themen