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 :

Interraction entre python et du code C/C++


Sujet :

Interfaçage autre langage Python

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Interraction entre python et du code C/C++
    Bonjour,

    J'ai un code en Python et j'aimerais faire appel à certaines fonctions d'un autre programme écrites en C.

    Est-ce possible ?

    De la même manière, est-ce possible de faire appel à une fonction écrite en Python depuis un programme en C ?

    Je sais qu'il existe une API C pour Python mais j'avoue ne pas avoir tout compris ... Si vous pouviez m'éclairer !

    Merci,
    Stéphane

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Points : 329
    Points
    329
    Par défaut
    Voici une doc que je trouve assez claire :
    http://www.linuxjournal.com/article/8497

  3. #3
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    Il ne faut pas se poser de questions et utiliser swig.

    Cela génère tout seul l'interface avec python.

    www.swig.org

    Dans swigwin-1.3.27\Examples\python\simple

    Il y a un exemple simple avec VisualC++ et la vie est belle...
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Je vais tester tout ca. Merci bien !!!

  5. #5
    Membre confirmé Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 406
    Points : 616
    Points
    616
    Par défaut
    un petit exemple de SWIG en français :
    http://dosimple.ch/articles/Python-SWIG/

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    Il semblerait que le module ctypes http://python.net/crew/theller/ctypes/ (inclus à partir de python 2.5 et compatible à partir de python 2.3) permette de le faire directement.
    Ca évite de devoir utiliser un programme extérieur comme swig.

    Par contre je ne l'ai pas testé.

    A+

    See++

  7. #7
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    Est-ce que quelqu'un compte tester cela ?
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    j'ai commencé a regarder l'utilisation de ctypes, et ca a l'ai de bien fonctionner.

    j'ai réussi a charger ma DLL sans aucun soucis.
    J'ai bien acces aux fonctions de celle ci.

  9. #9
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    Existe-t-il un tutoriel sur ctypes ?
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  10. #10
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    Perso, j'ai fait l'inverse, appeler du python dans une appli en C. La raison est simple, le C tourne sur un petit micro 8 bits et sur PC, le LCD est émulé sous SDL, mais je n'ai pas réussi à émuler son UART, car comme chacun sait le port COM n'est pas accessible à l'utilisateur sous Windows. J'ai donc fait la gestion bas niveau de l'UART en python, avec les liens vers le C qui vont bien. D'ailleurs, je suis toujours preneur pour une gestion entièrement en C du port COM sur PC.

    En premier lieu, il faut potasser la doc, nul besoin de swig (que j'ai testé quand même) une bonne piste ici:
    http://www.python.org/doc/1.5.2p2/ext/intro.html
    Bonne chance.

    A+

    Pfeuh

  11. #11
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    Le besoin de fyk91
    J'ai un code en Python et j'aimerais faire appel à certaines fonctions d'un autre programme écrites en C.
    Le post de pfeuh
    Perso, j'ai fait l'inverse, appeler du python dans une appli en C
    -> Moi aussi, j'ai déjà fait cela. Mais cela ne réponds pas au besoin...
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  12. #12
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,
    Citation Envoyé par Bayard Voir le message
    Moi aussi, j'ai déjà fait cela. Mais cela ne réponds pas au besoin...
    Pas sûr... Mon intention première correspondait à celle de fyk91, mais je n'ai pas hésité à me remettre en question...

    Citation Envoyé par fyk91 Voir le message
    De la même manière, est-ce possible de faire appel à une fonction écrite en Python depuis un programme en C ?
    Sinon, je veux bien admettre que je suis hors sujet si tu admets lire en diagonale...

    A+

    Pfeuh

Discussions similaires

  1. Récupérer le code source d'une page HTML
    Par phyn04 dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 24/11/2016, 14h45
  2. Interractions entre Flash et PHP
    Par jcp91 dans le forum Flash
    Réponses: 2
    Dernier message: 25/04/2007, 10h34
  3. [C#] heritage entre form. excecution du code a la compil.
    Par jota5450 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 07/07/2006, 10h30
  4. Interraction entre Excel et Access via VB
    Par hat_et_m dans le forum Access
    Réponses: 3
    Dernier message: 05/06/2006, 16h33
  5. Réponses: 1
    Dernier message: 02/12/2005, 14h07

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