python - 无法使用 Apache 将 sklearn 导入 Google Compute Engine 上的 Flask 应用程序

标签 python flask scikit-learn virtual-machine

我无法将 sklearn 导入到在 Google Compute Engine Linux (Ubuntu 14.04) 虚拟机上运行的 Flask 应用的 init.py 文件中。如果我删除 import sklearn 语句,下面的示例代码可以正常工作,但在包含该语句时将无法工作。浏览器等待服务器单元的响应超时。我可以在系统上运行任何其他 Web 应用程序,只要它们不使用 sklearn,所以我知道服务器工作正常。

init.py

    from flask import Flask
    import sklearn

    app = Flask(__name__)

    @app.route("/")
    def hello():
        return "Test"

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

sklearn 库已安装,我可以导入它并在其他 python 文件中使用它,不会出现任何问题。我需要的其他库也可以导入(numpy、pandas、bs4 等)。该问题特定于 sklearn 和 init.py 文件。如果我从终端运行该文件,它实际上不会抛出错误,就像我尝试导入未安装的库一样。当我尝试通过互联网连接它时,它没有响应。

系统上没有其他版本的 python。它只是 Linux VM 附带的普通 python 2.7 版本。

最佳答案

我遇到的问题是 apache 不能很好地工作 sklearn 中的 C 依赖项。更多信息可以在这里找到( https://github.com/naturalis/nbclassify/issues/2 )。

解决办法:

添加此行

WSGIApplicationGroup %{GLOBAL}

此行下方

WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi

在虚拟主机配置文件中(本教程中的步骤 4 https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps )。

该应用程序现在可以正常运行。

关于python - 无法使用 Apache 将 sklearn 导入 Google Compute Engine 上的 Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39651648/

相关文章:

python - 如何从 botocore 捕获异常

python - 使用 app.add_url_rule 时需要命名 url 吗?

javascript - 使用 Jinja 渲染到 JS 会产生无效的数字而不是字符串

python - sklearn-为什么这不能正确缩放?

python - sklearn : Custom scorer on pre-defined split

python - pygame中不播放背景音乐

python - 在数据存储中获取最近 7 天的实体

javascript - 将 Flask 变量从 javascript 传递到 html

python - Flask sha256_crypt.verify 返回 `not a valid sha256_crypt hash`

python - 使用 sklearn 缩放的 pandas 数据框列