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 :

Py2exe avec module PyPdf


Sujet :

Python

  1. #1
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut Py2exe avec module PyPdf
    Bonjour,
    J'ai essayé de compiler un programme avec py2exe.
    Pour cela, j'ai utilisé la syntaxe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from distutils.core import setup 
    import py2exe 
    setup(zipfile = None, console=["Essai.py"])
    Le paramètre zipfile=None sert à signaler à Py2exe d'intégrer le module pyPdf dans le programme Essai.exe, résultat de la compilation.

    Ca a bien marché sur ma machine de test, sur laquelle Python est installé.

    Mais lorsque j'ai recopié le répertoire DIST sur une autre machine, dans laquelle Python n'est pas installé, pour exécuter mon application sur cette autre machine, j'obtiens l'erreur suivante :
    C:\Temp\dist>Essai.exe
    Traceback (most recent call last):
    File "Essai.py", line 12, in <module>
    ImportError: No module named pyPdf
    Quelqu'un pourrait-il me dire comment opérer pour que mon appli fonctionne aussi sur un poste sans Python ?

  2. #2
    Membre averti Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Points : 344
    Points
    344
    Par défaut
    Bonjour,
    Je ne connais pas p2exe, par contre je sais qu'avec pyinstaller, un programme utilisant pypdf a fonctionné tout de suite sans faire rien de plus que la manip standard (par contre py 2.7 maxi).

    voir lien ici

    Alex

  3. #3
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut
    J'ai finalement quelque chose qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from distutils.core import setup 
    import py2exe 
    setup(zipfile = None, console=["Essai.py"], options={"py2exe":{"includes":["pyPdf"]}})
    Il suffisait de lui dire d'inclure le module pyPdf.

    Il me reste un dernier problème, lorsque je lance mon appli avec la console, elle fonctionne ; lorsque j'essaie de l'exécuter en cliquant dessus, elle ne fonctionne pas.

    Or, je souhaiterais livrer mon appli à des gens qui connaissent peu les ordinateurs, et ne pas leur imposer d'ouvrir une console DOS.

    Quelqu'un a t'il une solution pour ça ?

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Tu l'as rendu exécutable ?

    Éventuellement, crée un .bat et fais-en un raccourcis.

  5. #5
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,
    Tu l'as rendu exécutable ?
    Éventuellement, crée un .bat et fais-en un raccourcis.
    Ben oui, j'obtiens un fichier .EXE tout ce qu'il y a de correct (me semble t'il).

    Lorsque je me place dans une boite DOS, il s'exécute sans problème.

    Lorsque je double clique sur le fichier, il ne se passe rien !

    Bon, je vais créer un .BAT et voir ce qui se passe.

    ... 5 minutes après ...

    Non, c'est pareil, lorsque je clique sur le .BAT, je vois bien la console qui s'ouvre, mais elle se referme aussitôt sans avoir exécuté mon programme.

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Je n'ai qu'un expérience très limitée avec Windows mais j'utilise ceci comme raccourci sur Seven:

    monAppli.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    c:\Python27\python.exe c:\Users\Vincent\monAppli-1.2.3\monAppli.py
    pause
    pause devrait conserver la console ouverte après fermeture du programme, plantage compris.

  7. #7
    Membre éclairé
    Homme Profil pro
    Administrateur X3 - Sage 1000
    Inscrit en
    Janvier 2012
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur X3 - Sage 1000

    Informations forums :
    Inscription : Janvier 2012
    Messages : 573
    Points : 811
    Points
    811
    Par défaut
    Moi je mets ça dans mon fichier setup.py et pas besoin de passer par une console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    from distutils.core import setup
    import py2exe
    Mydata_files = [('', ['monicone.ico'])]
    setup(windows=["prog.py"],data_files=Mydata_files,options={"py2exe":{"includes":["pyPdf"]}})
    La différence est sur windows= au lieu de console=

    au passage je mets la syntaxe pour encapsuler un fichier icône

  8. #8
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par jeromecha Voir le message
    Moi je mets ça dans mon fichier setup.py et pas besoin de passer par une console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    from distutils.core import setup
    import py2exe
    Mydata_files = [('', ['monicone.ico'])]
    setup(windows=["prog.py"],data_files=Mydata_files,options={"py2exe":{"includes":["pyPdf"]}})
    La différence est sur windows= au lieu de console=

    au passage je mets la syntaxe pour encapsuler un fichier icône
    Ok, je vais essayer tout ça, (et également mon ancienne version avec le mode console).
    Résultats dès que possible.
    Bonne journée !


    ........ quelques heures plus tard ...............

    En effet, tout fonctionne ! à la fois en mode console qu'en mode window. Merci à tous. It's all right !

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

Discussions similaires

  1. [FLASH 8] application flash avec modules
    Par youp_db dans le forum Flash
    Réponses: 1
    Dernier message: 10/04/2006, 20h19
  2. piece jointe avec module SMTP
    Par vince2005 dans le forum Modules
    Réponses: 5
    Dernier message: 30/03/2006, 11h06
  3. Réponses: 1
    Dernier message: 11/12/2005, 21h21
  4. Probleme avec Module Base de données (dbd32.exe)
    Par mekdar dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/10/2005, 13h45
  5. Comment renommer un champ avec Module BD?
    Par technico dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/01/2004, 21h24

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