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 :

Compatibilité Python/C(++) ?


Sujet :

Interfaçage autre langage Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut Compatibilité Python/C(++) ?
    Bonjour,
    Je programme en Python et c'est, pour l'instant, le seul langage que je connais. En revanche, j'ai des amis qui programment en C++ et je sais que Python et le C(++) on plein de choses en commun, à commencer que Python est écrit en C++. De ce que j'ai lu, il serait possible d'utiliser des modules écrits en C++ ou en C pour Python. Je serais donc intéressé, mes amis pourront enfin m'aider à programmer !
    Je voulais donc mettre tout ça un peu au clair, comment ça marche et tout, si on a besoin de passer par un autre module ou lire des cours Python et cetera...
    Merci d'avance !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 681
    Par défaut
    Salut,

    Techniquement on a d'un cote le script Python et de l'autre le code C/C++. Si on veut appeler C/C++ depuis le script Python, il va falloir construire une passerelle qui permette de passer de l'un a l'autre.

    Le boulot de la passerelle sera de faire la conversion des paramètres d'appels et de retour et le codage sera plus ou moins "complique".

    Comme c'est "formel" et répétitif, il y a des outils qui permettent de faire ça: les plus populaires sont Cython et sip - utilise pour Qt.

    Comme c'est un boulot de "conversion" difficile de ne pas connaître (un minimum) Python et C/C++ pour réaliser ces passerelles.

    je sais que Python et le C(++) on plein de choses en commun, à commencer que Python est écrit en C++
    L’interpréteur Python a été réalisé dans plusieurs langages qui ont donne: Jython, IronPython, Pypy, CPython.
    CPython est probablement celui que vous utilisez.
    Cette information apparaît lorsque vous lancez l’interpréteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Python 3.3.2 (default, Nov  5 2013, 22:36:42) 
    [GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    Vous avez aussi un module Python appelé ctypes qui permet d'interfacer une librairie C sans utiliser l'artillerie lourde.

    Pour en savoir plus lisez les Cours et tutoriels pour apprendre la programmation Python , par exemple : Apprendre à programmer avec Python 3 par Gérard Swinnen

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Merci, je m'intéresse plus particulièrement à sip car je l'ai déjà et j'ai installé Qt ainsi que PyQt4. Je ne me suis pas encore penché sur les tutos faute de temps mais quelle est, selon vous, la méthode la plus simple pour convertir ces scripts, sans que le rédacteur (en C++) ait besoin d'adapter son script ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 681
    Par défaut
    Salut,

    Je ne vois pas quels scripts vous voulez convertir.

    Prenez le temps de lire un minimum de tutos.
    Ce genre de technologies (un peu) compliquée.
    Elle demande (un minimum) d'efforts pour voir a quoi ça ressemble et de prendre le temps de vous approprier (un minimum) la terminologie.

    En tant que débutant Python, vous pouvez vous contentez de poster du code. Avec de la patience, le lecteur pourra essayer de comprendre en faisant tourner le code dans son interpréteur.
    L'histoire que vous racontez en français n'a pas besoin d’être "précise".

    Avec ces techno. "montrer" ce que vous faites, c'est poster un script Python, le code C++, celui de la "passerelle".
    Pour essayer de reproduire, il faut avoir le compilo, le Python,... les commandes de construction....
    De fait, plus grand monde n'aura du temps pour vous aider.
    Si vous avez un problème et que vous ne savez pas le formuler clairement, personne ne s'y intéressera ou on vous dira RTFM.
    note: arriver a "formuler clairement", c'est augmenter la chance de trouver la réponse dans la doc. ou avec Google.

    Vous ne pourrez compter que sur vous même.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Merci, ce que je voulais dire c'est si on pouvait importer des modules 100% C++ sans y ajouter quoi que ce soit, pas de classes py_int par exemple. Je vois les tutos notamment sur CYTHON.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 681
    Par défaut
    A mon sens, ce n'est même pas imaginable.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. Compatibilité entre Python et Python XY
    Par Timeflyer dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 09/02/2014, 12h13
  2. Réponses: 2
    Dernier message: 19/12/2012, 20h33
  3. Compatibilité Python 3.2 & SFML 1.6
    Par Linkht dans le forum Programmation multimédia/Jeux
    Réponses: 1
    Dernier message: 20/05/2012, 02h50
  4. Compatibilité entre Python et Geany !
    Par AndreuMichel dans le forum Général Python
    Réponses: 15
    Dernier message: 03/03/2012, 10h48
  5. Compatibilité Python VS Vista
    Par Zorro dans le forum Général Python
    Réponses: 9
    Dernier message: 22/03/2007, 19h58

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