我正在尝试在谷歌应用引擎上部署python2.7应用程序。它使用很少的模块,如numpy,flask,pandas和scikit-learn。虽然我能够安装和使用其他模块。在项目的lib文件夹中安装scikit-learn会出现以下错误:-
回溯(最近一次调用):文件 "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py",第 240 行,在句柄处理程序 = _config_handle.add_wsgi_middleware(self._LoadHandler()) 文件 "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py",第 299 行,在_LoadHandler处理程序中,path, err = LoadObject(self._handler) 文件 "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py",第 85 行,在 LoadObject obj = __import__(path[0]) 文件 "/base/data/home/apps/s~category-prediction-1247/v1.391344087004233892/deploynew.py",第 6 行,在导入 sklearn 文件中 "/base/data/home/apps/s~category-prediction-1247/v1.391344087004233892/lib/sklearn/__init__.py",第 56 行,来自 。导入__check_build文件"/base/data/home/apps/s~category-prediction-1247/v1.391344087004233892/lib/sklearn/__check_build/__init__.py",第 46 行,raise_build_error(e) 文件 "/base/data/home/apps/s~category-prediction-1247/v1.391344087004233892/lib/sklearn/__check_build/__init__.py",第 41 行,以 raise_build_error %s"" % (e, local_dir, ''.join(dir_content).strip(), msg)) 导入错误:动态模块未定义初始化函数 (init_check_build)/base/data/home/apps/s~category-prediction-1247/v1.391344087004233892/lib/sklearn/__check_build 的内容: setup.pyc __init__.py _check_build.so setup.py __init__.pyc ____如果你已经从源代码安装了scikit-learn,请不要忘记在使用之前构建软件包:在源目录中运行python setup.py install
或make
。如果您使用过安装程序,请检查它是否适合您的 Python 版本、操作系统和平台。
他们有什么办法在谷歌应用引擎上使用scikit-learn吗?
Scikit-learn 现在可以在 App Engine 灵活环境中使用。
sklearn
只需要在requirements.txt
文件中指定为依赖项。
有关如何在 App Engine 上提供sklearn
模型的代码示例,请参阅此存储库。
看起来 sci-kit learn 在 App Engine 的 Python 2.x 标准环境中不受支持,在这种情况下,使用托管虚拟机是首选解决方案。请参阅此错误的解决方法。
另请参阅此类似问题,了解另一种替代方法。
新发布的第二代Python 3.7标准环境(实验性)可以运行所有模块。不过,它仍处于测试阶段。