Je cherche =E0 binder un librairie C++ en Python. Quel outil me=20
conseillez-vous pour g=E9n=E9rer le code du binding avec un maximum de=20
simplicit=E9 ? Sachant que mes rudiments de C++ sont bien loins derri=E8r=
e=20
moi...
J'ai lu la comparaison sur=20
http://seal.web.cern.ch/seal/snapshot/work-packages/scripting/evaluation-=
report.html=20
qui semble pousser vers SWIG ou Boost.Python. Mais finalement, l'auteur=20
ne prend pas position...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
olivier Ravard
Franck Pommereau wrote:
Bonjour,
Je cherche à binder un librairie C++ en Python. Quel outil me conseillez-vous pour générer le code du binding avec un maximum de simplicité ? Sachant que mes rudiments de C++ sont bien loins derrière moi...
J'ai lu la comparaison sur http://seal.web.cern.ch/seal/snapshot/work-packages/scripting/evaluation-report.html qui semble pousser vers SWIG ou Boost.Python. Mais finalement, l'auteur ne prend pas position...
Que choisir ?
Merci d'avance de vos conseils. Franc k Ayant essayé les deux je suggère boost.python car plus puissant
avec la possibilité de wrapper des classes. Peut-être vais-je être contredit mais c'est mon avis après de nombreux essais avec l'un et l'autre. Ceci dit, une période d'apprentissage plus longue est nécessaire avec boost.python bien que les fichiers à écrire en C++ soient 10 fois moins long.
O.R.
Franck Pommereau wrote:
Bonjour,
Je cherche à binder un librairie C++ en Python. Quel outil me
conseillez-vous pour générer le code du binding avec un maximum de
simplicité ? Sachant que mes rudiments de C++ sont bien loins derrière
moi...
J'ai lu la comparaison sur
http://seal.web.cern.ch/seal/snapshot/work-packages/scripting/evaluation-report.html
qui semble pousser vers SWIG ou Boost.Python. Mais finalement, l'auteur
ne prend pas position...
Que choisir ?
Merci d'avance de vos conseils.
Franc
k
Ayant essayé les deux je suggère boost.python car plus puissant
avec la possibilité de wrapper des classes.
Peut-être vais-je être contredit mais c'est mon avis après de nombreux
essais avec l'un et l'autre. Ceci dit, une période d'apprentissage plus
longue est nécessaire avec boost.python bien que les fichiers à écrire
en C++ soient 10 fois moins long.
Je cherche à binder un librairie C++ en Python. Quel outil me conseillez-vous pour générer le code du binding avec un maximum de simplicité ? Sachant que mes rudiments de C++ sont bien loins derrière moi...
J'ai lu la comparaison sur http://seal.web.cern.ch/seal/snapshot/work-packages/scripting/evaluation-report.html qui semble pousser vers SWIG ou Boost.Python. Mais finalement, l'auteur ne prend pas position...
Que choisir ?
Merci d'avance de vos conseils. Franc k Ayant essayé les deux je suggère boost.python car plus puissant
avec la possibilité de wrapper des classes. Peut-être vais-je être contredit mais c'est mon avis après de nombreux essais avec l'un et l'autre. Ceci dit, une période d'apprentissage plus longue est nécessaire avec boost.python bien que les fichiers à écrire en C++ soient 10 fois moins long.
O.R.
Cofr
Franck Pommereau wrote:
Bonjour,
Je cherche à binder un librairie C++ en Python. Quel outil me conseillez-vous pour générer le code du binding avec un maximum de simplicité ? Sachant que mes rudiments de C++ sont bien loins derrière moi...
qui semble pousser vers SWIG ou Boost.Python. Mais finalement, l'auteur ne prend pas position...
Personnellement j'ai utilisé de très nombreuses fois SWIG, pour
les classes simples, il est très efficace et évite d'écrire du code intermédiaire pour fabriquer une interface. Si tu travailles avec un environnement de développement récent, tu peux l'introduire dans ta chaine de compilation, et lorsque que tu modifies un .h, il remettra à jour automatiquement ton wrapper, sans que tu ais aucune ligne spécifique à écrire. Ptite précision, pour une utilisation avec le C++, il faut lancer SWIG avec l'option shadow, il génére alors en plus une classe python, qui te permet d'utiliser tes classes C++ comme de véritable classes Pythons.
Pour des classes qui contiennent des templates ou des classes imbriquées, il a un peu du mal à générer (à revérifier avec une version récente de SWIG), dans ce cas il vaut mieux se tourner vers une autre solution.
Franck Pommereau wrote:
Bonjour,
Je cherche à binder un librairie C++ en Python. Quel outil me
conseillez-vous pour générer le code du binding avec un maximum de
simplicité ? Sachant que mes rudiments de C++ sont bien loins derrière
moi...
qui semble pousser vers SWIG ou Boost.Python. Mais finalement, l'auteur
ne prend pas position...
Personnellement j'ai utilisé de très nombreuses fois SWIG, pour
les classes simples, il est très efficace et évite d'écrire
du code intermédiaire pour fabriquer une interface.
Si tu travailles avec un environnement de développement récent,
tu peux l'introduire dans ta chaine de compilation, et lorsque
que tu modifies un .h, il remettra à jour automatiquement ton
wrapper, sans que tu ais aucune ligne spécifique à écrire.
Ptite précision, pour une utilisation avec le C++, il faut
lancer SWIG avec l'option shadow, il génére alors en plus
une classe python, qui te permet d'utiliser tes classes
C++ comme de véritable classes Pythons.
Pour des classes qui contiennent des templates ou
des classes imbriquées, il a un peu du mal à générer (à revérifier
avec une version récente de SWIG),
dans ce cas il vaut mieux se tourner vers une autre solution.
Je cherche à binder un librairie C++ en Python. Quel outil me conseillez-vous pour générer le code du binding avec un maximum de simplicité ? Sachant que mes rudiments de C++ sont bien loins derrière moi...
qui semble pousser vers SWIG ou Boost.Python. Mais finalement, l'auteur ne prend pas position...
Personnellement j'ai utilisé de très nombreuses fois SWIG, pour
les classes simples, il est très efficace et évite d'écrire du code intermédiaire pour fabriquer une interface. Si tu travailles avec un environnement de développement récent, tu peux l'introduire dans ta chaine de compilation, et lorsque que tu modifies un .h, il remettra à jour automatiquement ton wrapper, sans que tu ais aucune ligne spécifique à écrire. Ptite précision, pour une utilisation avec le C++, il faut lancer SWIG avec l'option shadow, il génére alors en plus une classe python, qui te permet d'utiliser tes classes C++ comme de véritable classes Pythons.
Pour des classes qui contiennent des templates ou des classes imbriquées, il a un peu du mal à générer (à revérifier avec une version récente de SWIG), dans ce cas il vaut mieux se tourner vers une autre solution.
Franck Pommereau
Pour des classes qui contiennent des templates ou des classes imbriquées, il a un peu du mal à générer (à revé rifier avec une version récente de SWIG), dans ce cas il vaut mieux se tourner vers une autre solution.
Merci pour ta réponse (et merci aussi à Olivier). Le code à binder n'est pas le mien et je crois qu'il contient des choses assez sophistiquées, notamment des classes imbriquées. Je vais donc aller voir du côté d e Boost.Python.
Franck
Pour des classes qui contiennent des templates ou
des classes imbriquées, il a un peu du mal à générer (à revé rifier
avec une version récente de SWIG),
dans ce cas il vaut mieux se tourner vers une autre solution.
Merci pour ta réponse (et merci aussi à Olivier). Le code à binder n'est
pas le mien et je crois qu'il contient des choses assez sophistiquées,
notamment des classes imbriquées. Je vais donc aller voir du côté d e
Boost.Python.
Pour des classes qui contiennent des templates ou des classes imbriquées, il a un peu du mal à générer (à revé rifier avec une version récente de SWIG), dans ce cas il vaut mieux se tourner vers une autre solution.
Merci pour ta réponse (et merci aussi à Olivier). Le code à binder n'est pas le mien et je crois qu'il contient des choses assez sophistiquées, notamment des classes imbriquées. Je vais donc aller voir du côté d e Boost.Python.