Extender python
Chema Cortés
py en ch3m4.org
Mie Ene 18 00:13:54 CET 2006
El Martes, 17 de Enero de 2006 13:41, Francesc Altet escribió:
> A Dimarts 17 Gener 2006 12:55, Catalin Lungu va escriure:
> > Hola a todos,
> > Es posible extender Python con una clase hecha en C# sin usar IronPython
> > o Python .NET. Quiero hacer un form con 2 botones en C y desde Python
> > cambiar el texto de uno de los botones y también llamar al evento Click.
>
> Mmm, para enlazar con extensiones en C siempre suelo user Pyrex, pero
> en tu caso que usas C#, lo mismo encuentras más fácil ctypes:
>
> http://starship.python.net/crew/theller/ctypes/
Si no lo entendí mal, Catalin quería hacer el formulario en C#; así que no veo
cómo podría ayudar ctypes, pensado para hacer wrappers de librerías dinámicas
de C.
Se podría intentar con el SWIG, generador de interfaces para C#, java y otros
muchos lenguajes:
http://www.swig.org/
http://www.swig.org/Doc1.3/CSharp.html
<mode flag="pedantic">
Con swig, la llamada de C# a python se haría mediante "pinvoke". Seguramente
funcionará, ya que asegura portabilidad entre plataformas; pero no es
recomendable si se busca rendimiento en ejecución. Por contra, Ironpython
evita el uso del pinvoke, y es así como consigue rendimientos similares a
CPython. Según cuál sea el problema, valdría la pena replantearse el utilizar
Ironpython desde el principio.
</mode>
Más información sobre la lista de distribución Python-es