IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaçage autre langage Python Discussion :

Python dans un programme en C


Sujet :

Interfaçage autre langage Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Python dans un programme en C
    Bonjour !


    Je suis dans l'étude d'un projet de développement. Le programme de base serait fait en C et GTK+ pour la GUI. Le reste de l'application serait une suite de plugins fait sous la forme de scripts Python.

    Voilà pour l'intro

    La question que je me pose... Certains plugins peuvent ajouter des parties d'IHM sur l'interface écrite en C, donc avec des fonctions de pyGTK. Ma question est, peut-on faire cela et comment ?

    Aussi, quelles solutions aurais-je pour intégrer un interpréteur Python dans mon programme en C ?


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Par défaut
    Personnellement j'aurai plutôt fait le contraire.
    C'est à dire écrit les parties qu'il me faut en C. En faire une lib, puis les appelé à partir de code Python grâce a un mini wrapper écrit avec ctypes.
    Ainsi plus tard, pour les plugin, ça sera trivial car faudra juste intégrer du Python dans Python.

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    En fait en ce moment je me tâte pour tout faire en Python... ca sera l'occasion de m'y mettre sérieusement, ce qui sera fait dès le début de janvier avec un livre sous l'coude.

    Rien de sûr pour le moment, je prend des infos sous différents points de vue et de celui-ci, étant donné qu'il existe des bindings pour les différentes bibliothèques de GUI, quelle serait le meilleur choix entre pyGTK, pyQt et wxPython ?

    Attention, pas d'un point de vue personnel mais vraiment par rapport au langage qui est déjà orienté objet d'une part, mais qui est aussi multiparadigme tout en prennant en compte la qualité du portage vers Python des bibliothèques citées, etc... !


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    je pense que profiter d'une architecture faite en python et de performance de module en C est vraiment la solution optimal ...

    sinon pour les GUI voici ce que j en pense (objectivement) :

    pygtk :
    + pratique quand on connait GTK
    - pas tres bien implémenté, pas vraiment orienté objet, integration mac/windows moyenne

    pyqt :
    + complet, puissant, (le +) performant, bien objet, portable
    - payant (et cher) dans des developpements non opensource, un peu moche sous windows et mac, embetant sous gnome (mauvaise integration de qtk dans gnome)

    wxpython :
    + complet, puissant, bien objet, super intégration et tres portable (win32 sous windows, aqua sous Mac, gtk sous linux)
    - plus verbeux que les 2 autres

    perso je les ait tous testé mais je suis plutot devweb donc je ne suis pas spécialement attaché a une biblioteque ou autre ... faut noter qu'il y a aussi tkinter mais bon je pense que c'est pas dans tes besoins ...

  5. #5
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Professionnellement, j'ai choisi wxPython parce qu'il était gratuit, que la documentation était très pourvue, que sous windows, l'intégration était bonne et que les mises à jour étaient fréquentes.
    En tout cas, j'en suis très satisfait, construire même à la main ces GUI n'est vraiment pas très difficile avec un peu d'expériences. J'ai eu quelques fois des bogues d'affichage (mauvaise couleur, texte placé au mauvais endroit sur win2000 (alors qu'aucun problème sur XP ou Vista) mais en forçant le raffraichissement, le bogue disparaissait.


    En tout cas, j'ai opté pour tout programmer en Python (initialement Delphi puis Delphi+Python). Pour le moment, je peux faire tout ce que je souhaite sans passer par un autre langage.
    Après, si vraimenttu as besoin de performances pour certaines fonctions et que tu maitrîses le C ou le C++, tu pourras plus facilement intégrer dans ton code des portions de C ou C++. Quant à moi, je ne l'ai jamais fait, j'ai toujours pu me dépatouiller autrement et je n'ai jamais trouvé très facile cette intégration.

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par anthyme Voir le message
    pyqt :
    + complet, puissant, (le +) performant, bien objet, portable
    - payant (et cher) dans des developpements non opensource, un peu moche sous windows et mac, embetant sous gnome (mauvaise integration de qtk dans gnome)
    La bibliothèque ne reprend t-elle pas le thème courant du système sur lequel elle tourne ? Etonnant de la part de la bibliothèque qui se veut la plus puissante et aboutie

    Citation Envoyé par Guigui_ Voir le message
    Après, si vraimenttu as besoin de performances pour certaines fonctions et que tu maitrîses le C ou le C++, tu pourras plus facilement intégrer dans ton code des portions de C ou C++. Quant à moi, je ne l'ai jamais fait, j'ai toujours pu me dépatouiller autrement et je n'ai jamais trouvé très facile cette intégration.
    Je maîtrise très bien le C - ainsi que GTK+ par ailleurs - (vu ma reponsabilité sur dvp il le faut) mais c'est bien ce qu'il me semblait, que le mélange C et Python ne se fait pas vraiment.... aisément on va dire.


    Mon premier but était de faire le coeur du programme en C et GTK+ et les plugins par le biais d'interpréteur intégré tout en utilisant aussi pyGTK... est-ce si dur à faire ? J'aurais bien aimé resté dans cette voie du fait que le noyau du logiciel serait compilé et donc natif (ormis GTK+) par rapport à l'os sur lequel il tourne, je pense qu'on ne peut pas faire mieux du point de vue des performances !

    Quelle serait la démarche possible pour faire ce que je veux ? Si tant est qu'elle existe quelque part, y a-t-il des tutoriels (même en anglais) là dessus ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  7. #7
    Membre extrêmement actif
    Avatar de kedare
    Homme Profil pro
    SRE
    Inscrit en
    Juillet 2005
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : SRE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 549
    Par défaut
    Citation Envoyé par anthyme Voir le message
    sinon pour les GUI voici ce que j en pense (objectivement) :

    pygtk :
    + pratique quand on connait GTK
    - pas tres bien implémenté, pas vraiment orienté objet, integration mac/windows moyenne

    pyqt :
    + complet, puissant, (le +) performant, bien objet, portable
    - payant (et cher) dans des developpements non opensource, un peu moche sous windows et mac, embetant sous gnome (mauvaise integration de qtk dans gnome)

    wxpython :
    + complet, puissant, bien objet, super intégration et tres portable (win32 sous windows, aqua sous Mac, gtk sous linux)
    - plus verbeux que les 2 autres

    perso je les ait tous testé mais je suis plutot devweb donc je ne suis pas spécialement attaché a une biblioteque ou autre ... faut noter qu'il y a aussi tkinter mais bon je pense que c'est pas dans tes besoins ...
    Alors la je suis pas d'accord sur mac
    Le meilleur sur Mac est de loin Qt , qui est extremement bien integré , et respecte bien la guidelines , par exemple on peut utiliser les toolbar a la mac

    Wx est tres laid sur mac ... les composants sont mis nimporte comment et la guidelines n'est pas du tout respecter
    Quand a GTK n'en parlons pas , il ne gene meme pas la barre de menu et ne tourne qu'avec X11

    ps: je vient de tester les demos de WxPython , ca s'est bien ameliorer ... c'est pas encore au niveau de Qt mais pas loin (le code est toujours aussi imbuvable par contre )
    Images attachées Images attachées  

  8. #8
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    j ai regarder opéra sur mac et ca m a donner envie de ... c de la que vient mon avis donc j'ai mis "un peu moche"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. InteractiveConsole : Lancer un interpréteur Python dans un programme
    Par spartan811 dans le forum Général Python
    Réponses: 0
    Dernier message: 07/06/2012, 16h18
  2. Réponses: 3
    Dernier message: 03/07/2009, 09h58
  3. Erreur dans mon programme en Python
    Par florichoute dans le forum Général Python
    Réponses: 1
    Dernier message: 28/04/2009, 15h08
  4. Utiliser le shell python dans ses programmes ?
    Par kedare dans le forum Général Python
    Réponses: 6
    Dernier message: 21/05/2008, 20h25
  5. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo