|
|
|
#1 (permalink) |
|
Messages: n/a
Hébergeur: |
Bonjour,
Je connais SWIG pour produire un binding Python d'une librairie C. Mais existe-t-il un outil qui fasse l'inverse : produire un binding C pour des modules Python ? (Et encore mieux, un outil qui produise des bindings dans plein de langages dont C...) Merci d'avance pour toute indication... Franck |
|
|
|
#3 (permalink) |
|
Messages: n/a
Hébergeur: |
>> binding
> ??? Heu... on doit dire « liaison » en français... Mais il s'agit en fait de porter une API d'un langage à un autre sans changer la librairie (pardon, bibliothèque) sous-jacente. (Comme PyGTK qui est un binding Python de GTK+ écrite en C.) F. |
|
|
|
#4 (permalink) |
|
Messages: n/a
Hébergeur: |
Franck Pommereau a écrit :
> Bonjour, > > Je connais SWIG pour produire un binding Python d'une librairie C. > > Mais existe-t-il un outil qui fasse l'inverse : produire un binding C > pour des modules Python ? Pas exactement - et je doute que ce soit possible - mais tu devrais peut-être regarder comment embarquer un interpréteur CPython. |
|
|
|
#5 (permalink) |
|
Messages: n/a
Hébergeur: |
Franck Pommereau a écrit :
> Bonjour, > > Je connais SWIG pour produire un binding Python d'une librairie C. > > Mais existe-t-il un outil qui fasse l'inverse : produire un binding C > pour des modules Python ? (Et encore mieux, un outil qui produise des > bindings dans plein de langages dont C...) C'est intéressant... A quoi ce "binding" devrait-il ressembler ? Pourrais-tu donner quelques exemples ? Sans attendre les réponses, je te propose d'aller voir du côté de boost::python, qui a a sans doute tous le trucs qu'il faut pour appeler python à partir du C++, sans s'occuper des détails fastidieux. C'est plus facile dans ce sens-là: Python a une interface beaucoup plus régulière que le C. -- Amaury |
|
|
|
#6 (permalink) |
|
Messages: n/a
Hébergeur: |
> Pas exactement - et je doute que ce soit possible - mais tu devrais
> peut-être regarder comment embarquer un interpréteur CPython. C'est ce que je m'apprête à faire si je ne trouve pas un outil pour me mâcher le travail... |
|
|
|
#7 (permalink) |
|
Messages: n/a
Hébergeur: |
> C'est intéressant...
> A quoi ce "binding" devrait-il ressembler ? Pourrais-tu donner quelques > exemples ? Je dirais un type C pour chaque class Python et des fonctions pour les méthodes, nommées selon le module et la classe. Par exemple un module egg avec : class Foo : def bar (x, y) : ... Ça donnerait : PyObject Foo; PyObject Egg_Foo_Bar (PyObject c, y); > Sans attendre les réponses, je te propose d'aller voir du côté de > boost::python, qui a a sans doute tous le trucs qu'il faut pour appeler > python à partir du C++, sans s'occuper des détails fastidieux. > > C'est plus facile dans ce sens-là: Python a une interface beaucoup plus > régulière que le C. Je vais de ce pas regarder si je peux booster mon binding, merci ! Franck |
|
|
|
#8 (permalink) |
|
Messages: n/a
Hébergeur: |
Bonjour,
j'avais déjà vu cette question quelque part, j'ai donc recherché où...c'était par ici : http://www.thescripts.com/forum/thread38507.html Apparement, ça mène à Elmer (que je ne connaissais pas) et qui à l'air bien sympathique: http://elmer.sourceforge.net/ mais je ne sais pas ce que ça vaut... |
|
![]() |
| Outils de la discussion | |
|
|