Python-hjul¶
Att göra
Riktlinjer för hjul som väljer vilken version som ska användas.
Färdigställa en policy för hur motstridiga versioner av ett hjul ska hanteras.
Python wheels (*.whl) är standardmetoden för att distribuera Python-moduler. De stöds i Blender för att göra fristående Python Extensions.
Riktlinjer¶
Enligt konvention ska filerna alltid placeras under ./wheels/.
Krav¶
Hjul måste buntas ihop omodifierade från Pythons paketindex.
Wheels måste inkludera sina beroenden.
Hjulets filnamn måste överensstämma med Pythons binära distributionsspecifikation: se docs. Wheels som laddas ner från Pythons paketindex kommer att följa denna konvention.
Använd snedstreck som sökvägsavgränsare när du listar dem på manifest.
Hur man buntar hjul¶
Python-hjul (*.whl) kan buntas ihop med hjälp av följande steg.
- Nedladdning av hjul
Ladda ner hjulet till katalogen ./wheels/.
För hjul som är plattformsoberoende hämtar detta exempel jsmin:
pip wheel jsmin -w ./wheels
För hjul som innehåller binärt kompilerade filer bör hjul för alla plattformar som stöds inkluderas:
Detta exempel hämtar pillow - den populära bildmanipuleringsmodulen.
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
De tillgängliga plattformsidentifierarna finns listade på pillows nedladdningssida.
- Uppdatera manifestet
I blender_manifest.toml inkludera hjulen som en lista med sökvägar, t.ex.
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", ]
När du nu installerar paketet kommer hjulet att extraheras till tilläggets egen katalog site-packages.
- Kör
När tillägget har installerats kan du kontrollera att modulen läses in genom att importera den i Python-konsolen och skriva ut dess plats:
import PIL print(PIL.__file__)
Byggande av plattformar¶
Hjul kan allvarligt påverka storleken på ett tillägg. För att mildra detta är det möjligt att bygga olika zip-filer för tillägg för varje unik plattform som krävs.
För detta måste du använda alternativet –split-platforms från kommandot build.
blender --command extension build --split-platforms
Exempel¶
Utdrag ur manifestfilen:
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",
]
Genererade filer från –split-platforms:
my_addon_med_hjul-1.0.0-windows_x64.zip
my_addon_med_hjul-1.0.0-macos_x64.zip
Observera
Trots att det finns ett hjul för enbart Linux genereras ingen zip-fil för Linux. Detta beror på att fältet plattforms endast innehåller Mac och Windows.