sklearn无法在aws lambda函数中工作。部署包问题

时间:2017-05-09 14:46:57

标签: python amazon-web-services amazon-s3 scikit-learn aws-lambda

我试图解决这个问题已经4天了。我在本地机器上创建了我的代码。在本地计算机上创建的Lambda函数工作正常。当我用aws creating liberaries wit aws中提到的随机链接它时。并将zip文件夹上传到S3存储桶。直到这里一切正常。当我在lambda函数中使用此链接时出现问题。 lambda函数没有找到sklearn liberary和return错误

  

START RequestId:bf7b2618-34c5-11e7-a8eb-43a949065813版本:$ LATEST   无法导入模块'main':动态模块没有定义模块导出功能(PyInit__check_build)

     

/ var / task / sklearn / check_build的内容: setup.py _check_build.so __init .pyc init .py setup.pyc

似乎scikit-learn还没有正确构建。

如果你已经安装了scikit-learn from source,请不要忘记 在使用它之前构建包:运行python setup.py install或 源目录中的make

如果您使用过安装程序,请检查它是否适合您的安装程序 Python版本,您的操作系统和您的平台。

到目前为止,我已经尝试了所有可行的方法。当我运行此命令来构建此包

  

python setup.py安装或构建

错误出现Cpython __check_buid缺失。 我用了4天就尝试了一切。如果有人知道。请帮帮我。提前谢谢你。

1 个答案:

答案 0 :(得分:0)

这些问题可能与psycopg2,pandas,numpy和其他具有复杂依赖关系的库相同 - 您必须从源代码构建它们,而不是本地,但要么使用亚马逊Linux实例,或Amazon Linux docker镜像。 AWS文档中的步骤甚至提到它,请查看文档中的第4点:

  
      
  1. 通过SSH连接到64位Amazon Linux实例。
  2.   

您可以省略此步骤并使用某些库(如request或pytz)在本地执行此操作,但更复杂的库需要Amazon Linux。

针对您的特定问题,逐步解决方案描述为here