2017-11-02 3 views
0

NumPy, sklearn 등의 모듈을 EC2 Micro 인스턴스의 플라스크 앱에 가져올 수 없습니다.EC2 - Flask App에 모듈을 가져올 수 없습니다.

  1. flaskapp.py
  2. flaskapp.wsgi

flaskapp.py의 코드는 다음과 같습니다 :

import sys 
import os 
import shutil 
import time 
import traceback 

from flask import Flask, request, jsonify 

app = Flask(__name__) 

@app.route('/predict') 
def predict(): 
    from sklearn.externals import joblib 
    import numpy as np 
    clf = joblib.load("flaskapp/models/saved_model.pkl") 
    print 'model loaded' 
    if clf: 
     try: 
      prediction = list(clf.predict(np.array([['0', '100', '164', '150', '1']]))) 
      return jsonify({'prediction': prediction}) 
     except Exception, e: 
      return "ERROR" + e 
    else: 
     print os.getcwd() 
     return 'no model here' 


if __name__ == '__main__': 
    from sklearn.externals import joblib 
    import numpy as np 
    print "Imports Done" 
    app.run(DEBUG=True) 

는/홈/우분투 디렉토리 내에서, 나는이 포함 된 디렉토리 flaskapp이 flaskapp.wsg 나는 다음과 같습니다

import sys 
import site 
site.addsitedir('/home/ubuntu/.local/lib/python2.7/site-packages') 
sys.path.insert(0, '/var/www/html/flaskapp') 
from flaskapp import app as application 

다음과 같은 질문에 따르면 Numpy ImportError when deploying Flask App using mod_wsgi/Apache2

내가 (너무와 사이트-가능) 내 /etc/apache2/sites-enabled/000-default.conf 수정 같은 :

WSGIPythonPath /usr/local/lib/python2.7/site-packages/ 
<VirtualHost *:80> 

     ServerAdmin [email protected] 
     DocumentRoot /var/www/html 


     WSGIDaemonProcess flaskapp threads=5 
     WSGIScriptAlias//var/www/html/flaskapp/flaskapp.wsgi 

     <Directory flaskapp> 
       WSGIProcessGroup flaskapp 
       WSGIApplicationGroup %{GLOBAL} 
       Order deny,allow 
       Allow from all 
     </Directory> 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

</VirtualHost> 

http://ec2-....compute-1.amazonaws.com/predict가 발생 URL로 간다 :

500 내부 서버 오류 또는

서버에서 내부 오류가 발생하여 요청을 완료하지 못했습니다. 서버가 과부하되었거나 응용 프로그램에 오류가 있습니다. 다음

오류 로그가 표시

[Thu Nov 02 22:15:21.936872 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592] [2017-11-02 22:15:21,936] ERROR in app: Exception on /predict [GET] 
[Thu Nov 02 22:15:21.936900 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592] Traceback (most recent call last): 
[Thu Nov 02 22:15:21.936903 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1982, in wsgi_app 
[Thu Nov 02 22:15:21.936905 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592]  response = self.full_dispatch_request() 
[Thu Nov 02 22:15:21.936907 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1614, in full_dispatch_request 
[Thu Nov 02 22:15:21.936909 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592]  rv = self.handle_user_exception(e) 
[Thu Nov 02 22:15:21.936911 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1517, in handle_user_exception 
[Thu Nov 02 22:15:21.936913 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592]  reraise(exc_type, exc_value, tb) 
[Thu Nov 02 22:15:21.936915 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1612, in full_dispatch_request 
[Thu Nov 02 22:15:21.936917 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592]  rv = self.dispatch_request() 
[Thu Nov 02 22:15:21.936918 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1598, in dispatch_request 
[Thu Nov 02 22:15:21.936920 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592]  return self.view_functions[rule.endpoint](**req.view_args) 
[Thu Nov 02 22:15:21.936922 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592] File "/var/www/html/flaskapp/flaskapp.py", line 37, in predict 
[Thu Nov 02 22:15:21.936924 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592]  import numpy as np 
[Thu Nov 02 22:15:21.936931 2017] [wsgi:error] [pid 11753:tid 140263731681024] [client 130.245.192.4:11592] ImportError: No module named numpy 

답변

1

문제는 아파치했다가 디렉토리에 액세스 할 수 없습니다. 슬프게도, 위에 게시 된 질문에는 아주 적은 의견이 있습니다. 허용되는 대답은 올바른 것이 아닙니다.

sudo chown -R www-data:www-data /home 
: 그것은 사람을 도움이된다면

여기에 솔루션을 추가

관련 문제