Python Wheels#

Python wheels (*.whl) sú štandardným spôsobom distribúcie modulov Pythonu. Sú podporované v Blenderi na vytvorenie samostatných Python rozšírení.

Odkazy návodov#

  • Podľa konvencie sa súbory vždy nachádzajú v priečinku ./wheels/.

Požiadavky#

  • Wheels musia byť pribalené v nezmenenej podobe z Indexu balíkov Pythonu.

  • Wheels musia obsahovať svoje závislosti.

  • Názvy súborov Wheels musia zodpovedať špecifikácii binárnej distribúcie Pythonu: viď dokumenty. Wheels stiahnuté z indexu balíkov Pythonu sa budú riadiť touto konvenciou.

  • Pri ich uvádzaní v zozname manifestu použite ako oddeľovače ciest lomky.

Ako na balíky Wheels#

Python wheels (*.whl) možno spájať použitím nasledujúcich krokov.

Sťahovanie Wheels

Stiahnite Wheels do priečinka ./wheels/.

Pre Wheels, ktoré sú nezávislé od platformy, tento príklad stiahne jsmin:

pip wheel jsmin -w ./wheels

V prípade Wheels, ktoré obsahujú binárne skompilované súbory, by mali byť zahrnuté Wheels pre všetky podporované platformy:

Tento príklad stiahne pillow - populárny modul na manipuláciu s obrázkami.

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

Dostupné identifikátory platforiem sú uvedené na stránke pillow na stiahnutie.

Aktualizácia manifestu

V súbore blender_manifest.toml uveďte Wheels ako zoznam ciest, napr.

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",
]

Pri inštalácii balíka sa kolo rozbalí do vlastného priečinka rozšírenia site-packages.

Spustenie

Po nainštalovaní rozšírenia môžete skontrolovať, či je modul načítaný, tak, že ho importujete v konzole Pythonu a vypíšete jeho umiestnenie:

import PIL
print(PIL.__file__)

Zostavenia platforiem#

Vheels môžu výrazne ovplyvniť veľkosť rozšírenia. Na zmiernenie tohto problému je možné vytvoriť rôzne súbory zip rozšírenia pre každú jedinečnú požadovanú platformu.

Na tento účel musíte použiť možnosť --split-platforms z príkazu build.

blender --command extension build --split-platforms

Napríklad#

Výňatok zo súboru manifestu:

id = "my_addon_with_wheels"
version = "1.0.0"

platforms = ["windows-x64", "macos-x64"]
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",
]

Vygenerované súbory z --split-platforms:

  • my_addon_with_wheels-1.0.0-windows_x64.zip

  • my_addon_with_wheels-1.0.0-macos_x64.zip

Poznámka

Aj keď je prítomné Wheel len pre Linux, nevytvorí sa žiadny súbor zip pre Linux. Stáva sa to preto, lebo v poli platforms sú uvedené iba počítače Mac a Windows.