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 :

Appel script python depuis du C++


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 14
    Points : 16
    Points
    16
    Par défaut Appel script python depuis du C++
    Bonjour,

    Pour une application scientifique j'ai besoin de faire appel à un script Python depuis mon code de simulation en C++.
    Le script Python n'a d'autre utilité que de tracer les graphes de résultat depuis un fichier .csv fraîchement généré par la simulation, j'utilise donc Matplotlib - j'utilise également ce script de façon externe pour homogénéiser les présentations des résultats.

    Je parviens à créer les graphes en utilisant la fonction system :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string lcmd = "python " + path + "vpread.py " + Filename;
    system(lcmd.c_str());
    Seul hic, le programme principal s'arrête tant que le script ne m'a pas rendu la main, autrement dit tant que je n'ai pas fermé les fenêtres des graphes. Je cherche donc à récupérer la main
    - soit au sein du C++ en utilisant autre chose que system() (mais je ne comprends pas bien les fork et execv)
    - soit au sein du Python s'il est possible de créer des graphes et de garder la main sans fermer les fenêtres Matplotlib

    J'espère avoir été assez clair... merci pour les réponses

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 432
    Points : 593
    Points
    593
    Par défaut
    Je connais rien du tout à l'interfacage, je vais t'aider comme je peux.

    Si tu le fait avec la fonction system t'as pas besoin d'execv.
    Tu peux utiliser juste fork avec un truc dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    switch(fork())
    {
        case -1 : //Dans ce cas là le fork a fait une erreur, tu la gére comme tu veux
        case 0 : //Dans ce cas là on est dans le processus fils qui doit donc executer :
                  system(...
                  //puis se terminer :
                  exit(EXIT_SUCCESS);
    }
     
    //si l'execution arrive ici, c'est que l'on est dans le processus père, tu peux mettre ici ce que tu veux...
    J'ai essayé de t'expliquer...

Discussions similaires

  1. Executer un script Python depuis un code C++
    Par Niak74 dans le forum C++
    Réponses: 4
    Dernier message: 02/02/2011, 11h19
  2. Appel de python depuis excel
    Par Bayard dans le forum Général Python
    Réponses: 2
    Dernier message: 11/09/2010, 18h07
  3. Appeler script perl depuis php/html
    Par wopsy dans le forum Web
    Réponses: 8
    Dernier message: 30/09/2009, 10h46
  4. Exécuter un script python depuis PHP
    Par Fawn_noOb_wxPython dans le forum Langage
    Réponses: 4
    Dernier message: 20/10/2008, 14h27
  5. [Système] Exécuter script python depuis php
    Par philpython dans le forum Langage
    Réponses: 1
    Dernier message: 22/03/2007, 14h57

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