Python Wheels

Les Python wheels (*.whl) sont le moyen standard de distribuer les modules Python. Ils sont pris en charge dans Blender pour créer des Extensions Python autonomes.

Directives

  • Par convention, localisez toujours les fichiers sous ./wheels/.

Exigences

  • Les “Wheels” doivent être regroupées sans modification à partir de l'index du package Python.

  • Les “Wheels” doivent inclure leurs dépendances.

  • Les noms de fichiers des “Wheels” doivent correspondre à la spécification de la distribution binaire de Python : voir la documentation. Les Wheels téléchargées à partir de l’index des packages Python suivront cette convention.

  • Utilisez des barres obliques comme séparateurs de chemin lorsque vous les répertoriez sur le manifeste.

Comment regrouper les Wheels

Les wheels Python (*.whl) peuvent être regroupées en suivant les étapes suivantes.

Téléchargement de Wheels

Télécharger la “wheel” dans le répertoire ./wheels/.

Pour les “wheels” indépendantes de la plate-forme, cet exemple télécharge jsmin :

pip wheel jsmin -w ./wheels

Pour les “wheels” contenant des fichiers binaires compilés, les “wheels” de toutes les plates-formes prises en charge doivent être incluses :

Cet exemple télécharge pillow - le module de manipulation d’images populaire.

pip download pillow --dest ./wheels --only-binary=:all: --python-version=3.11 --platform=macosx_11_0_arm64
pip download pillow --dest ./wheels --only-binary=:all: --python-version=3.11 --platform=manylinux_2_28_x86_64
pip download pillow --dest ./wheels --only-binary=:all: --python-version=3.11 --platform=win_amd64

Les identifiants de plateforme disponibles sont répertoriés sur la `page de téléchargement de Pillow<https://pypi.org/project/pillow/#files>`__.

Mise à jour du manifeste

Dans blender_manifest.toml inclure les “wheels” sous forme de liste de chemins, par exemple.

wheels = [
   "./wheels/pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl",
   "./wheels/pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl",
   "./wheels/pillow-10.3.0-cp311-cp311-win_amd64.whl",
]

Maintenant, l’installation du package extraira la “wheel” dans le répertoire propre aux site-packages de l’extension.

Exécution

Une fois l’extension installée, vous pouvez vérifier que le module est en cours de chargement en l’important dans la console Python et en affichant son emplacement :

import PIL
print(PIL.__file__)