2015-11-02 2 views
0

Я пытаюсь вызвать скрипт python в функции лямбда AWS. Я создал виртуальный env для python и установил pandas, pymongo и т. Д. Модуль, который необходим. Вот мой invokepython.js:Вызов python в ошибке импорта лямбда AWS

var exec = require('child_process').exec; 
exports.handler = function(event, context) { 
    console.log('Received event:', JSON.stringify(event, null, 2)); 
    exec("env/bin/python kinesisconsumer.py '"+ JSON.stringify(event) +"'", function(error, stdout) { 
    console.log('Python returned: ' + stdout + '.'); 
    context.done(error, stdout); 
}); 
}; 

Я установил virtualenv и создал окр использования. Использование env/bin/pip install pandas У меня установлены панды. Я скопировал папку env и мои скрипты и развернул ее в AWS лямбда, но получил ошибку.

{ 
    "errorMessage": "Command failed: Traceback (most recent call last):\n File \"kinesisconsumer.py\", line 4, in <module>\n import pandas as pd\n File \"/var/task/env/local/lib/python2.7/site-packages/pandas/__init__.py\", line 13, in <module>\n \"extensions first.\".format(module))\nImportError: C extension: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace' to build the C extensions first.\n", 
    "errorType": "Error", 
    "stackTrace": [ 
    " File \"kinesisconsumer.py\", line 4, in <module>", 
    " import pandas as pd", 
    " File \"/var/task/env/local/lib/python2.7/site-packages/pandas/__init__.py\", line 13, in <module>", 
    " \"extensions first.\".format(module))", 
    "ImportError: C extension: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace' to build the C extensions first.", 
    "", 
    "ChildProcess.exithandler (child_process.js:658:15)", 
    "ChildProcess.emit (events.js:98:17)", 
    "maybeClose (child_process.js:766:16)", 
    "Process.ChildProcess._handle.onexit (child_process.js:833:5)" 
    ] 

Мне нужно использовать панды на лямбда AWS. Как мне решить эту проблему. Любая помощь оценили !!!

+0

использования колес, уже выполнил. –

+0

@ е-Ноури я не получил you.How сделать Я использую колеса – sau

+0

- это пакеты python/libs, которые уже скомпилированы, пип будет только распаковывать их в вашем env. –

ответ

0

Я делал все на Amazon Linux, как я делал на своей машине ubuntu. Работает. Объяснение here

Для того чтобы работать в AWS Lambda, модули расширения должны быть скомпилированы для Amazon Linux x86_64"

Смежные вопросы