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 :

Compiler code python en dll


Sujet :

Python

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2004
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 173
    Points : 127
    Points
    127
    Par défaut Compiler code python en dll
    Bonjour,

    j'ai un fichier py qui contient une fonction très simple qui me renvoie le carré d'un nombre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def carre(nombre):
        return(nombre*nombre)
    Je souhaite compiler ce code sous forme de dll (je veux que le code ne puisse pas être décompilé) afin de pouvoir l'appeler depuis Excel VBA par exemple.

    Il semblerait que cet outil fonctionne, mais sous Python 2, pas sous Python 3:

    http://www.py2exe.org/
    https://sourceforge.net/projects/py2.../py2exe/0.6.9/

    Or j'ai Python 3. Comment faire?

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    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 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Salut,

    Citation Envoyé par ANOVA Voir le message
    Or j'ai Python 3. Comment faire?
    Vous pourriez installer Python 2 et vérifier que py2exe ne sait pas fabriquer de DLL et encore moins "compiler"...

    Pour fabriquer une DLL, il faut prendre un compilateur C/C++ qui "emballe" l'interpréteur Python pour exécuter un script comme documenté dans extending et embedding Python.
    Il existe des bibliothèques qui mâchent le boulot. En faisant quelques recherches sur Internet, vous allez trouver celle qui existent et une description de ce qu'elles font pour voir si elles répondent (ou pas) à votre besoin.

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

  3. #3
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Installe pyinstaller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pip install pyinstaller
    (si ça ne fonctionne pas, download get-pip.py)

    En supposant que ton script python s'appelle t.py:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pyinstaller --onefile --ondirectory t.exe t.py
    Le répertoire DIST contient ce que tu dois distribuer.
    Si la réponse vous a aidé, pensez à cliquer sur +1

Discussions similaires

  1. Compiler code Java dans une librairie de type DLL
    Par Tonton Dalitou dans le forum Général Java
    Réponses: 3
    Dernier message: 28/01/2013, 15h27
  2. Appel d'une dll C depuis du code Python
    Par gnayoke dans le forum Général Python
    Réponses: 7
    Dernier message: 18/02/2010, 14h26
  3. créer une dll à partir d'un code python
    Par minak dans le forum Interfaçage autre langage
    Réponses: 4
    Dernier message: 18/06/2009, 12h22
  4. Compilation des code behind en dll
    Par phpieur dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/09/2007, 13h37

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