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 :

Affichage sur la sortie standard StandAlone python [Python 3.X]


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Affichage sur la sortie standard StandAlone python
    Bonjour,

    Voici un exemple simple illustrant mon problème. Si on considère le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def affichage():
        print("hello world!")
     
     
    if __name__=='__main__':
        affichage()
    Quand le lance ce programme depuis un terminal, tout va bien, il affiche dans le terminal "hello world!"

    Néanmoins, une fois que je transforme ce programme en executable (avec cx_freeze) et que je lance le .exe, aucune fenêtre ne se lance, aucun affichage n'apparaît.

    Ce que j'ai déjà essayé :

    • ajouter après affichage() un system("pause") --> si je lance l'executable avec ça, mon hello world ne s'affiche pas mais une fenêtre s'ouvrir en indiquant "appuyez sur une touche pour continuer..."


    • faire un : sys.stdout = open('log.csv','w') puis un sys.stdout.write("hello world!") --> cela fonctionne, hello world est inscrit dans le fichier log.csv, mais cela ne répond pas à mon besoin qui est d'afficher hello world dans une fenêtre, pas dans un fichier.


    • faire simplement un sys.stdout.write("hello world"), mais lors de l'execution du .exe, il me dit qu'un NoneType n'a pas de méthode "write" (je suppose que c'est parce que stdout n'a pas été défini dans ce cas)


    Mon besoin :

    • Mon objectif est d'afficher hello world dans une fenêtre style terminal lors de l'execution du .exe


    Ma config :

    Python 3.6
    Conversion .py --> .exe avec cx_freeze

    Je vous remercie !

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

    Tout dépend de comment vous avez construit votre exécutable (et de ce que contient le setup.py si vous êtes passé par là).

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    En effet, j'ai utilisé un setup.py que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import sys
    from cx_Freeze import setup, Executable
     
    # GUI applications require a different base on Windows (the default is for a
    # console application).
    base = None
    if sys.platform == "win32":
        base = "Win32GUI"
     
    setup(  name = "test_affichage",
            version = "0.1",
            description = "",
            options = {"build_exe": build_exe_options},
            executables = [Executable("test_affichage.py", base=base)])
    Pour ce qui est de la création de l'executable, j'ai utilisé la commande :

    Merci !

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

    Citation Envoyé par ilovevba Voir le message
    En effet, j'ai utilisé un setup.py
    C'est sûr que réutiliser du code plutôt que de le retaper est toujours une bonne idée.
    Mais vous n pouvez faire çà que si vous comprenez ce qu'il fait: moins dépenser d'énergie dans les doigts n'est pas une raison pour mettre son cerveau en panne!

    Votre soucis est là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    # GUI applications require a different base on Windows (the default is for a
    # console application).
    base = None
    if sys.platform == "win32":
        base = "Win32GUI"
    à vous de comprendre le commentaire et/ou d'ouvrir une documentation qui l'explique.

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

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Très bien je vous remercie

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

Discussions similaires

  1. Affichage sur la sortie standard
    Par lastico21000 dans le forum C
    Réponses: 8
    Dernier message: 18/10/2011, 13h45
  2. Réponses: 0
    Dernier message: 13/03/2008, 10h10
  3. Comment afficher sur la sortie standard ?
    Par cranama dans le forum C
    Réponses: 8
    Dernier message: 31/12/2007, 14h44
  4. ré-écriture sur la sortie standard
    Par alex'l dans le forum Langage
    Réponses: 6
    Dernier message: 14/12/2006, 19h05
  5. Réponses: 1
    Dernier message: 24/02/2006, 00h53

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