Python Wheels¶
Python wheels (*.whl) стандартним шляхом для розподілення Python модулів. Вони підтримуються в Blender, що зробити самостійні Python Розширення.
Guidelines – Настанови¶
За конвенцією, треба завжди розміщати файли під
./wheels/.
Вимоги¶
Wheels повинен бути в пакунку, немодифікований із Python’s package index.
Wheels повинен містити їх залежності.
Назви файлів Wheels повинні збігатись з Python з специфікацією двійкового розподілення дивіться документацію. Wheels завантажений з Python індекс пакунку буде слідувати цим конвенціям.
Використовуйте прямі слеши («/») як розділення шляху коли перелічуєте їх в маніфесті.
Як Об’єднати Wheels¶
Python wheels (*.whl) може бути об’єднаний використовуючи наступні кроки.
- Завантаження Wheels
Завантажте wheel до директорії
./wheels/.Для wheels який незалежний від платформи, цей приклад завантажує
jsmin:pip wheel jsmin -w ./wheelsДля wheels який містить скомпільовані двійкові файли, wheels для всіх підтримуваних платформ повинен містити:
Цей приклад завантажує
pillow- популярний модуль з маніпуляціями над зображеннями.pip download pillow --dest ./wheels --only-binary=:all: --python-version=3.13 --platform=macosx_11_0_arm64 pip download pillow --dest ./wheels --only-binary=:all: --python-version=3.13 --platform=manylinux_2_28_x86_64 pip download pillow --dest ./wheels --only-binary=:all: --python-version=3.13 --platform=win_amd64
Список доступних ідентифікаторів платформ знаходиться на pillow’s download page.
- Оновити Маніфест
В
blender_manifest.tomlвключіть wheels як список шляхів, приклад.wheels = [ "./wheels/pillow-12.1.0-cp313-cp313-macosx_11_0_arm64.whl", "./wheels/pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", "./wheels/pillow-12.1.0-cp313-cp313-win_amd64.whl", ]
Тепер встановлюючи пакунок він розархівує wheel в директорію свого розширення
site-packages.- Виконання
Once the extension has been installed you can check the module is being loaded by importing it in the Python console and printing its location:
import PIL print(PIL.__file__)
Збірки Платформ¶
Wheels може серйозно вплинути на розмір розширення. Щоб пом’якшити це, є можливим зробити збірки розширення zip файлів для кожної унікальної потрібної платформи.
Для цього вам треба використовувати опцію --split-platforms з команди build.
blender --command extension build --split-platforms
Приклад¶
Окремий відбиток маніфест файлу:
id = "my_addon_with_wheels"
version = "1.0.0"
platforms = ["windows-x64", "macos-x64"]
wheels = [
"./wheels/pillow-12.1.0-cp313-cp313-macosx_11_0_arm64.whl",
"./wheels/pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"./wheels/pillow-12.1.0-cp313-cp313-win_amd64.whl",
]
Згенеровані файли з --split-platforms:
my_addon_with_wheels-1.0.0-windows_x64.zip
my_addon_with_wheels-1.0.0-macos_x64.zip
Примітка
Навіть якщо в наявності тільки Linux wheel, Linux zip файл не буде згенерований. Це трапляється тому, що поле platforms має тільки Mac та Windows.