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 :

Lien API avec Python


Sujet :

Interfaçage autre langage Python

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Points : 7
    Points
    7
    Par défaut Lien API avec Python
    Bonjour,

    Je suis nouveau sur ce site, et aussi sur Python. Issu du monde VB, je cherchais un langage Linux/Windows.

    Après des recherches sur le web, pour le moment infructueuses, je me pose la question suivante :

    - je dispose d'une API spécialisée (ss forme de .dll/.so), écrite par un tiers, mais les déclarations de cette API ne semblent pas exister pour Python

    Elles sont disponibles pour Basic, C/C++, Borland C, Pascal et Java.

    Existe-t-il un moyen de les lier ? Ou faut-il reprendre complètement les fichiers de déclaration ?

    Je précise que mon niveau Python ne me permet pas de les réécrire. Je compte plutôt utiliser cette API dans le cadre d'un projet à la fois professionnel et pour l'apprentissage du langage.

    D'avance merci pour vos conseils.

    François

  2. #2
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Salut,

    http://python.org/doc/current/api/api.html
    tu pourrais y trouver ton bonheur


    Bonne chance avec le serpent, il lui arrive d'être capricieux
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Bonsoir,

    La portabilité n'est pas le souci premier. Même si j'ai espoir de faire une appli qui puisse fonctionner sous Linux, le besoin est d'abord pour Windows.

    Je vais aller voir le module Win32. Cela me permettra peut-être d'affiner mes questions. Merci pour la rapidité de la réponse


    François

    ps : il me semble que le lien est pour l'API de programmation de Python sous C. Ou mon anglais me joue des tours ?
    L'API que je souhaite utiliser est spécialisée dans l'accès aux données (format spécifique). Sous VB, j'associais les fichiers de déclaration, et j'utilisais les fonctions dans mon code VB. J'aimerais pouvoir faire la même chose, mais en Python, pas en C.

  4. #4
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Salut,

    J'ai édité pendant que tu repondais
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    J'ai vu

  6. #6
    Expert éminent sénior
    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 : 43
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Pour utiliser des dlls, il y a la bilbiothèque ctypes qui sera intégré en standard dans le python 2.5
    http://docs.python.org/dev/whatsnew/...00000000000000

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Points : 7
    Points
    7
    Par défaut Lien API avec Python, suite...
    Bon, je résume un peu :
    • le module ctypes qui semble avoir les faveurs de beaucoup apparaitra dans 2.5... Mais je ne suis pas certain qu'il soit futé de me lancer avec cette version de Python.
    • le module dl semble devoir être proscrit This example was tried on a Debian GNU/Linux system, and is a good example of the fact that using this module is usually a bad alternative. A ce propos, je n'ai pas encore réussi à mettre la main sur le module dl. Il ne fait par partie de mon installation, et n'est pas dans la liste des third party modules de python.org. Il est déjà banni ?


    Une autre question qui me vient en parallèle. Les fonctions de cette DLL utilisent des types complexes. Que deviennent-ils dans le modèle Python ? Ce n'est précisé ni dans la doc dl, ni dans l'annonce de ctypes.

    Merci à vous,

    François

  8. #8
    Expert éminent sénior
    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 : 43
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    ctypes est également disponible pour python 2.4 (mais pas en standard):
    http://starship.python.net/crew/theller/ctypes/

  9. #9
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    La réactivité de ce forum me laisse baba

    Merci de la réponse (si rapide), je m'en vais tester un peu et parcourir la doc.

    François

  10. #10
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Pour poursuivre un peu le sujet, ayant fait quelques tests, je dirais :

    La librairie ctypes fonctionne plutôt bien sous windows, au moins avec l'API en question.

    Reste la question des types personnalisés, des structures en fait. De ce que j'ai lu ces derniers jours, elles seraient remplaçables par le type dictionnaire. Vous confirmez ?

    Je vais aussi aller gratter le module struct...

    François

  11. #11
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Bon, je butte un peu sur quelques équivalences difficiles à établir (pour moi au moins...)

    Ma DLL utilise une fonction qui opère de la façon suivante (en C|VB):

    char maVariable[taille_maVariable];
    returnCode = maFonction (index, maVariable,taille_maVariable)

    La fonction copie le texte renvoyé par l'index dans maVariable. (Elle le tronque ou l'étend de|à taille_maVariable caractères)

    Dans mon script Python, je déclare maVariable avant (sous peine d'erreur)
    maVariable=''
    mais elle reste despérément vide alors que le returnCode me signale que cela a fonctionné.

    Quelqu'un aurait-il un indice ?

    D'avance, merci.

    François

  12. #12
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Bien, on progresse lentement...

    Pour la question précédente, tout rentre dans l'ordre avec le bon type de variable.
    Dans ce cas, on a un create_string_buffer(n) qui va bien

    François

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

Discussions similaires

  1. Ouvrir excel avec python 3.0 en cliquant sur lien
    Par Petugnia dans le forum Tkinter
    Réponses: 9
    Dernier message: 13/05/2009, 14h27
  2. Création lien ODBC en VB6 + API avec UID et PWD
    Par hodawa dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 22/05/2008, 11h33
  3. [swish]Lien spécial avec flash
    Par florentcorporation dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 03/03/2004, 10h34
  4. Réponses: 14
    Dernier message: 01/09/2003, 16h54

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