【问题标题】:Numpy - Internal Server Error on ApacheNumpy - Apache 上的内部服务器错误
【发布时间】:2017-06-18 20:16:42
【问题描述】:

我在 EC2 (Ubuntu) 上创建了一个 Flask 应用程序,因此我可以使用我创建的预测模型从另一个系统发送两个数据点。没有 numpy 一切正常,但是一旦我将它添加回 Apache 就会引发内部服务器错误。所有模块都已安装并使用 pip --freeze 验证。该应用程序位于名为 flaskapp 的目录中。

这是我 wsgi 中的代码:

导入系统

sys.path.insert(0, '/var/www/html/flaskapp')
from flaskapp import app as application

以下是我对 Apache conf 文件所做的更改:

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

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

这是 Flask 应用程序代码:

#imports
import numpy as np
from flask import Flask, jsonify, request
import pickle as pickle

#Open Predicitve Model
pklmodel = 'model.pkl'
my_model = pickle.dumps(pklmodel, protocol=2)
app = Flask(__name__)

#Flask App Endpoint
@app.route('/api',methods=['POST'])

#Predicitions Function
def make_predict():
    data = request.get_json(force=True)
    predict_request = [data['Temp'],data['Pressure']]
    predict_request = np.array(predict_request)
    predGhi = my_model.predict(predict_request)
    output = [predGhi[0]]
    return jsonify(results=output)

#run app as webservice
if __name__ == '__main__':
   app.run()

我错过了什么?

【问题讨论】:

标签: python flask


【解决方案1】:

如果是内部服务器错误,Apache 的错误日志中应该有记录。最有可能的是,有一个未捕获的异常,并且那里会有它的堆栈跟踪。见Debugging Techniques — mod_wsgi 4.5.16 documentation

使用 mod_wsgi 时,除非您或您正在使用的 web 框架 采取具体行动来捕捉异常并在 另一种方式,唯一的地方,细节未被抓住 异常将被记录在 Apache 错误日志文件中。这 因此,Apache 错误日志文件是您的主要信息来源 当出现问题时。

用户请求looks something like this 上的mod_wsgi 错误日志条目:

[error] [client ..] mod_wsgi (pid=8184): Exception occurred processing WSGI script '.../django.wsgi'.
[error] [client ..] Traceback (most recent call last):
<...>
[error] [client ..] File "../apps/py26_logging/handlers.py", line 394, in emit
[error] [client ..]   self.stream.flush()
[error] [client ..] ValueError: I/O operation on closed file

如果没有[client],则表示加载/卸载模块时发生错误(例如编译错误)。

【讨论】:

  • 谢谢 - 我先检查了那里,但刚才又重新检查了它,它指出没有名为 numpy 的模块,但它已安装并且 pip freeze 表明这样。
  • @DataGuy 好,检查你的sys.path
  • 谢谢 - 我的所有其他模块都工作正常 - 我会专门检查 sys.path 是否有 numpy。
猜你喜欢
  • 2015-09-26
  • 2016-10-28
  • 1970-01-01
  • 2017-08-25
  • 1970-01-01
  • 2018-01-08
  • 2020-09-26
  • 2015-02-12
  • 2015-11-22
相关资源
最近更新 更多