Comment puis-je ajouter des packages Python avec des fichiers binaires compilés à mon package de déploiement et rendre le package compatible avec Lambda ?

Date de la dernière mise à jour : 18/09/2018

J'ai utilisé pip pour installer un package Python qui contient du code compilé, mais mon package de déploiement n'est pas compatible avec AWS Lambda. Comment résoudre ce problème ?

Brève description

Il existe des packages Python qui contiennent du code compilé. C'est le cas de NumPy. Vous pouvez installer ces packages à l'aide de la commande pip install :

pip install module-name -t /path/to/project-dir

Toutefois, si vous installez ces packages à l'aide de pip, les packages téléchargeront et compileront un package nom-module pour votre architecture. Votre package de déploiement est donc incompatible avec Lambda, sauf si vous exécutez la commande dans un système d'exploitation Linux.

Pour rendre un package de déploiement compatible avec Lambda, téléchargez un package précompilé appelé « wheel » (.whl). Décompressez le fichier « wheel » sur /path/to/project-dir au lieu d'utiliser pip install.

Resolution

1.    Ouvrez votre page nom-module pypi.org. Par exemple :

https://pypi.org/project/numpy/

2.    Choisissez « Download files » (Télécharger les fichiers).

3.    Télécharger :

  • Pour Python 2.7 : module-name-version-cp27-cp27mu-manylinux1_x86_64.whl
  • Pour Python 3.6 : module-name-version-cp36-cp36m-manylinux1_x86_64.whl

4.    Décompressez le fichier « wheel » dans le dossier /path/to/project-dir .

Lorsque le fichier « wheel » est décompressé, votre package de déploiement est compatible avec Lambda.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?