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

Python Discussion :

utilisation dll dans un script python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut utilisation dll dans un script python
    Bonjour,

    Voilà, je cherche à savoir comment utiliser les fonction d'une dll (codé en c) dans un script python.

    Je pense que ctypes serait un outil me permettant de le faire mais je n'ais pas tres bien compris comment faire...

    Si quelqu'un pouvais me donner un exemple simple ca serait sympa !

    exemple :
    J'ai par exemple une dll qui comporte une fonction :

    //madll.h :
    int carre(int x1, int x2);

    comment je fais pour utiliser la fonction carre dans un script python ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Salut,

    La bibliothèque vient avec un tutoriel assez complet.
    Pourquoi ne pas montrez ce que vous avez fait et illustrer les problèmes que vous rencontrez?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    merci de cette réponse rapide.

    Bah, j'essais simplement d'importer ma dll et cela ne fonctionne pas...
    le script se ferme automatiquement et ne se met même pas en pause car il plante à la ligne mydll...

    j'ai tenté de l’exécuter au seins de l’interpréteur python et je rencontre un : NameError: name 'ctypes' is not defined

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # -*-coding:utf-8 -*
     
    from ctypes import * 
    import os
     
    mydll = ctypes.WinDLL('C:\...\funcfunc.dll') # j'ai également éssayé avec des "/"
     
    os.system("pause")

    EDIT :

    erreur bête... (surement la fatigue...)
    en faite non, dans l’interpréteur python je n'ai pas d'erreur si je retire le ctypes avant WinDLL :
    mydll = WinDLL('C:/.../func.dll') # il n'indique pas d'erreur


    Mais le script.py quand à lui persiste à bloqué... il n’apprécie pas du tout :
    mydll = WinDLL('C:/.../func.dll')

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Citation Envoyé par joks93440 Voir le message
    j'ai tenté de l’exécuter au seins de l’interpréteur python et je rencontre un : NameError: name 'ctypes' is not defined
    Normal, en écrivant:
    vous récupérez les définitions de /ctypes/ pour ne pas avoir a les préfixer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mydll = ctypes.WinDLL('C:\...\funcfunc.dll')
    va planter a cause de 'ctypes'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mydll = WinDLL('C:\...\funcfunc.dll')
    plantera peut être aussi mais pour autre chose.

    Ceci dit, si vous êtes déjà coince avec des trucs aussi basiques pourquoi vous lancer dans un truc aussi complique qu'interfacer une DLL externe avec Python?

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

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    vous avez répondu avant que j'ai le temps de finir mon édit ^^'

    en faite voilà je suis actuellement en alternance et je débute totalement en python.
    je vais travailler sur un outil codé entièrement en python.
    Dans celui ci on aimerai rajouter des fonctionnalités.
    Une équipe a déjà crée ces fonctionnalités pour un autre produit sous forme d'une dll (codé en c).
    Il faudrait que je soit capable d'interfacer la dll avec un script python afin de simplement pouvoir utiliser les fonctions codé en C.

    Je ne pense pas que cela devrait être très compliquer :-/

    Je passe d'habitude beaucoup de temps à chercher à comprendre tout seul, mais là, il est vrai que j'ai posé une question assez basique...
    Je ne dirais pas que j'étais "coincé" car j'ai posté sur le forum immediatement sans avoir trop cherché (et je m'en excuse), dans le but d'avoir une réponse rapide qui me donnerait exemple d'utilisation d'une fonction

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Citation Envoyé par joks93440 Voir le message
    Il faudrait que je soit capable d'interfacer la dll avec un script python afin de simplement pouvoir utiliser les fonctions codé en C.
    "etre capable" commence par comprendre ce qui est écrit dans la documentation puis réaliser le code qui répond a vos besoins. Pour l'instant, vous n'arrivez pas a lire la doc. ni a comprendre les messages d'erreurs qui vous sont retournes.
    C'est super! Vous avez pleins de choses a apprendre et a découvrir pour égayer votre journée.

    Citation Envoyé par joks93440 Voir le message
    vous avez répondu avant que j'ai le temps de finir mon édit ^^'
    Certes mais ça devrait remonter un message d'erreur... qui devrait être plus ou moins explicite.

    - 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. Utilisation d'une librairie dynamique C++ dans un script python
    Par johnraikonen dans le forum Interfaçage autre langage
    Réponses: 6
    Dernier message: 27/01/2011, 15h48
  2. Utilisation de C++ dans un script python.
    Par Ekinoks dans le forum Interfaçage autre langage
    Réponses: 8
    Dernier message: 18/01/2007, 19h03
  3. import dans les script python (objet zope)
    Par cronos6 dans le forum Zope
    Réponses: 5
    Dernier message: 10/09/2006, 14h47
  4. Radio boutton dans un script python
    Par Abla23 dans le forum Zope
    Réponses: 17
    Dernier message: 12/07/2006, 17h12
  5. Réponses: 3
    Dernier message: 05/04/2005, 14h26

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