我无法将sklearn导入到我在Google Compute Engine linux (Ubuntu 14.04) VM上运行的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虚拟机附带的python 2.7版本。
我遇到的问题是由于apache在sklearn中的C依赖关系不能很好地工作。更多信息可以在这里找到(https://github.com/naturalis/nbclassify/issues/2)。
解决方案:
添加这一行
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
中的虚拟主机配置文件(本教程https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps中的第4步)。
应用程序现在工作没有问题。