Я пытаюсь скомпилировать numpy для использования в функциях AWS Lambda с моего компьютера с Windows.
Я следовал этому простому примеру serverless-python-требований для лямбды, чтобы напечатать массив numpy.
Я запускаю serverless deploy
изнутри virtualenv в моем локальном каталоге ../numpy-test
(numpy-test) C:\Users\...\numpy-test>serverless deploy
Serverless: Generated requirements from C:\Users\...\numpy-test\requirements.txt in C:\Users\...\numpy-test\.serverless\requirements.txt...
Serverless: Installing requirements from C:\Users\...\numpy-test\.serverless\requirements\requirements.txt ...
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Injecting required Python packages to package...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service .zip file to S3 (42.86 MB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
Мой файл needs.txt просто содержит
numpy==1.13.1
и мой файл YML выглядит следующим образом:
service: numpy-test
frameworkVersion: ">=1.1.0 <2.0.0"
plugins:
- serverless-domain-manager
- serverless-python-requirements
custom:
pythonRequirements:
dockerizePip:non-linux
stage: ${opt:stage, self:provider.stage}
domains:
prod: ...
staging: ...
dev: ...
Когда я пытаюсь проверить функцию после загрузки с помощью serverless invoke -f numpy --log
, я получаю следующую ошибку
"errorMessage": "Unable to import module 'handler'"
}
--------------------------------------------------------------------
START RequestId: 24584f5c-5145-4694-b21b-7c6e4700f985 Version: $LATEST
Unable to import module 'handler':
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control). Otherwise reinstall numpy.
Original error was: cannot import name 'multiarray'
Когда я загружаю зависимости напрямую из AWS lambda, создается впечатление, что пакет скомпилирован в Windows.
![enter image description here](https://i.stack.imgur.com/B8gbH.png)
У меня установлен Docker и, насколько я могу судить, он работает правильно.Я не использовал его раньше, поэтому я пытаюсь использовать это решение, а не изучать много новых команд в Docker.
Что не так?