Rhino ve Grasshopper’da Python
Rhino ve Grasshopper’da Python 3, CPython üzerinden; Python 2 ise IronPython üzerinden çalışır. Python 3 desteği eski Python 2 script'lerini otomatik olarak kaldırmaz. Rhino 9 tanıtımı CPython 3.13 desteğini öne çıkarır.
İki çalışma ortamı
Python 3, .NET ve RhinoCommon’a Python.NET üzerinden erişir. IronPython ise doğrudan .NET üzerinde çalışır. Bilimsel paketler gerektiren script'ler Python 3’ten yararlanırken, yoğun RhinoCommon çağrıları veya mevcut iş parçacığı kullanımı olan eski script'ler ayrı değerlendirilmelidir.
Paketler ve hata ayıklama
PyPI paketleri script içindeki #r: numpy gibi bildirimlerle kullanılabilir. Çakışan paketler için ayrı ortamlar desteklenir. Script Düzenleyici; kesme noktaları, değişken inceleme ve çağrı yığınıyla hata ayıklama sağlar; bu özellikler Grasshopper bileşenlerinde de kullanılabilir.
ScriptEditor ve Grasshopper
ScriptEditor komutu ortak editörü açar. Eski EditPythonScript editörü mevcut olsa da yeni çalışmalar için ScriptEditor önerilir. GH1’de Python 3 bileşeni, eski GHPython bileşeninin yanında yer alır.
GH2 de Python 3 ve Python 2 script bileşenleri içerir. Ancak ghpythonlib bir Grasshopper 1 kütüphanesidir ve GH2’de kullanılamaz; mevcut script'lerin bu bağımlılığı özellikle kontrol edilmelidir.
Python 2’den Python 3’e taşıma
print’in fonksiyon olması, tam sayı bölmesinin davranışı, xrange yerine range ve basestring yerine str kullanımı gibi dil farkları ele alınmalıdır. .NET enum’larında None adlı üyeler Python.NET tarafında NONE olarak görünür.
IEnumerable döndüren yöntemler liste yerine yineleyici verebilir; uzunluk veya indeks gerekiyorsa list(...) dönüşümü yapılır. .NET türünden türeyen sınıflarda taban kurucunun super().__init__() ile çağrılması gerekir.
Script'leri eklentiye dönüştürme
Script Düzenleyici, script'leri bir proje altında toplayarak Rhino komutları veya Grasshopper bileşenleri içeren eklenti oluşturabilir. Dağıtım öncesinde paket bağımlılıkları, hedef Rhino sürümü ve iki işletim sistemindeki davranış kontrol edilmelidir.
Kaynaklar
Bu sayfadaki teknik ve hukuki bilgiler aşağıdaki resmî kaynaklara dayanır.