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

Déploiement/Installation Python Discussion :

cx_freeze : application ne se lance pas


Sujet :

Déploiement/Installation Python

  1. #1
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut cx_freeze : application ne se lance pas
    Bonsoir,
    Sous Ubuntu (dernière version), j'ai installé cx_freeze.
    Je fonctionne avec python 3.5.
    J'ai lancé un setup build avec le setup suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import sys
    from cx_Freeze import setup, Executable
     
    # Dependencies are automatically detected, but it might need fine tuning.
    build_exe_options = {"packages": ["os", "re"], "excludes": ["tkinter"]}
     
    # 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 = "salut",
            version = "0.1",
            description = "My GUI application!",
            options = {"build_exe": build_exe_options},
            executables = [Executable("salut.py", base=base)])
    J'obtiens un fichier "salut" dans le répertoire build/exe.linux-x86_64-3.5 mais ce fichier ne se lance pas.
    J'ai du commettre une erreur quelque part, mais je ne vois pas où.
    Ce fichier est inopérant également sous Windows.
    Pas d'aide par mp.

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    Comme je suis en dualboot, j'ai essayé cx_freeze sous Windows avec python3.4.
    Même résultat : j'obtiens bien un fichier salut.exe mais rien ne se passe lors de son éxécution.
    Pas d'aide par mp.

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Ce serait bien de mettre ici un petit code python d'essai (une vingtaine de lignes) qui a le problème, pour qu'on puisse essayer.

    En cas de problème non identifié (sans message d'erreur), je suggère en général d'essayer avec un code du genre print("coucou") afin de valider l'installation.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    Oui, c'est ce que je fais.
    Je "compile" ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # -*- coding: utf-8 -*-
     
    """Ce fichier affiche simplement une ligne grâce à la fonction print."""
     
    #import os
     
     
    print("Salut le monde !")
     
     
    # Sous Windows il faut mettre ce programme en pause (inutile sous Linux)
     
    #os.system("pause")
    avec le code précédent.

    Sous Windows, j'obtiens bien le répertoire build et le sous répertoire qui va avec le fichier exe.
    Sous Linux, la même chose sans l'extension .exe.
    A priori, out se déroule normalement.
    C'est simplement à l'exécution sous Windows, sous Linux ou même avec Wine que rien ne se passe.
    Pas d'aide par mp.

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    J'ai essayé avec ton code programme et setup:

    - sous Windows: comme c'est un code en console (=non graphique), il faut remplacer dans le setup.py: base = "Win32GUI" par base = "Console". Et ça marche (il faut, bien sûr, lancer l'exe en console).

    - sous Linux (chez moi: LinuxMint = enfant d'Ubuntu), ça marche sans modification sous Python 2.7 (je n'ai pas cx_freeze sous Python 3.4). Ne pas oublier de déclarer le fichier final comme exécutable. Par ailleurs, Python 3.5 est récent: vérifier que cx_freeze fonctionne avec (il y a déjà eu des adaptations nécessaires qui demandent un peu de temps avec les versions précédentes).
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    Merci tyrtamos,
    Grâce à toi, mon fichier fonctionne maintenant sous Windows (python 3.4, je crois).
    Le fichier créé fonctionne également sous Wine, donc, c'est en net progrès.
    Tu mets effectivement le doigt sur un souci possible sous Ubuntu car j'ai python3.5...
    Je vais creuser.
    Pas d'aide par mp.

  7. #7
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    J'ai utilisé un autre programme plus compliqué (utilisant tkinter, csv, PIL, ...) : c'est un programme qui fait du traitement de photo.
    Que faut-il pour faire tourner le fichier .exe ?
    Tout le dossier exe.win-amd64 ?
    A bientôt.
    Pas d'aide par mp.

  8. #8
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    J'ai trouvé la réponse à ma question : effectivement, il faut fournir le dossier.
    Du coup, j'ai installé pyinstaller : ceal fonctionne bien sous Windows.
    Reste à tester sous linux, mais j'ai l'impression que cela bugue encore.
    Pas d'aide par mp.

  9. #9
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Une fois le code Python traité avec cx_freeze, il est autonome.

    Mais le programme traité n'a pas été compilé en code machine: il a toujours besoin de l'interpréteur, et des modules nécessaires. Il faut donc laisser l'exe dans son répertoire avec tout ce qu'il contient.

    D'ailleurs, sous Windows, il est facile de créer un raccourci sur le bureau pour lancer l'exe dans son répertoire, quelque soit l'endroit où celui-ci se trouve dans le disque. On peut aussi mettre le répertoire dans le PATH.

    On peut aussi utiliser pyinstaller qui permet de tout mettre dans un fichier exe, mais c'est un peu artificiel: au lancement, l'exe unique se "désarchivera" dans un répertoire temporaire, et c'est là que l'exécution se poursuivra.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  10. #10
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    J'ai donc utilisé cx_freeze et pyinstaller.
    Sous Windows, tout est ok. Pyinstaller donne effectivement un seul fichier exe, ce qui est plus agréable.
    Sous Wine, cela ne fonctionne pas finalement complètement (je pense qu'il faudrait que j'y installe imageMagick).
    Sous Ubuntu, que ce soit avec cx_freeze ou pyinstaller, tout se passe normalement jusqu'à avoir un fichier éxécutable mais celui est inopérant.
    Pas d'aide par mp.

  11. #11
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Sous Ubuntu, que ce soit avec cx_freeze ou pyinstaller, tout se passe normalement jusqu'à avoir un fichier éxécutable mais celui est inopérant.
    A-t-il été déclaré comme exécutable?

    Comment le lances-tu?
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  12. #12
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    Mes fichiers sont bien exécutables.
    Par contre, panne d'internet hier et je n'ai pas pu signaler que mon premier fichier se lançait finalement avec "./salut".
    Par contre, pour l'autre, toujours rien.
    Pas d'aide par mp.

  13. #13
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par marco056 Voir le message
    je n'ai pas pu signaler que mon premier fichier se lançait finalement avec "./salut".
    Par contre, pour l'autre, toujours rien.
    Donc, si j'ai bien compris, sous Ubuntu, lancé en console avec "./salut", le programme tout simple affiche bien la chaine du print. Cela valide l'installation.

    Maintenant, si le programme plus compliqué ne donne rien, c'est que la configuration de son setup.py n'est pas adaptée: c'est là-dessus qu'il faut travailler!

    Et là, on parle de cx_freeze ou de pyinstaller?
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  14. #14
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    Avec cx_freeze, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ./tk-photo-def 
    Traceback (most recent call last):
      File "/usr/lib/python3.5/importlib/_bootstrap.py", line 1140, in _install
        import _frozen_importlib_external
      File "/usr/lib/python3.5/importlib/_bootstrap.py", line 969, in _find_and_load
        return _find_and_load_unlocked(name, import_)
      File "/usr/lib/python3.5/importlib/_bootstrap.py", line 956, in _find_and_load_unlocked
        raise ImportError(_ERR_MSG.format(name), name=name)
    ImportError: No module named '_frozen_importlib_external'
    Fatal Python error: Py_Initialize: importlib install failed
     
    Current thread 0x00007f27d39b0700 (most recent call first):
    Abandon (core dumped)
    Edit :
    et avec pyinstaller, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ./tk-photo-def 
    Traceback (most recent call last):
      File "tk-photo-def.py", line 10, in <module>
    ImportError: No module named tkinter
    Failed to execute script tk-photo-def
    Pas d'aide par mp.

  15. #15
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Concernant cx_freeze: Je n'ai pas trouvé de cx_freeze à installer qui soit destiné à Python 3.5. Il y en a bien un pour Windows (http://cx-freeze.sourceforge.net/) mais pas pour Linux. Comment as-tu fait?

    Concernant pyinstaller: l'erreur est plus banale. Puisqu'il ne trouve pas tkinter tout seul, il faut donc lui indiquer.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  16. #16
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    J'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sudo pip3 install cx_freeze
    [sudo] Mot de passe de marco3*: 
    The directory '/home/marco3/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
    The directory '/home/marco3/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
    Requirement already satisfied (use --upgrade to upgrade): cx_freeze in /usr/local/lib/python3.5/dist-packages/cx_Freeze-4.3.4-py3.5-linux-x86_64.egg
    You are using pip version 8.1.1, however version 8.1.2 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    Pour tkinter, je comprends mais cela suppose que python soit installé sur la machine, du coup.
    Pas d'aide par mp.

  17. #17
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne sais pas si tu as réussi, mais je ne peux plus t'aider maintenant: je suis indisponible pendant un certain temps. Peut-être pourrais-je faire tout de même une apparition de temps en temps mais sans garantie.

    Pour tkinter, essaie le sous-forum spécialisé. A priori, cx_freeze ou pyinstaller devrait pouvoir intégrer aussi cette bibliothèque mais je ne sais pas comment parce que je ne l'utilise pas.

    Bonne suite!
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  18. #18
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    Ok, merci.
    Pas d'aide par mp.

  19. #19
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'ai un peu d'internet là où je suis: as-tu encore besoin d'aide?
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  20. #20
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    C'est sympa mais comme j'ai d'autres travaux sur le feu, je ne m'y suis pas repenché.
    Merci à toi.
    Pas d'aide par mp.

Discussions similaires

  1. Mon application ne se lance pas (android)
    Par ycf16 dans le forum Android
    Réponses: 2
    Dernier message: 14/02/2014, 20h36
  2. [WPF 3.5] - Application ne se lance pas
    Par Anto03 dans le forum Framework .NET
    Réponses: 0
    Dernier message: 04/07/2011, 17h54
  3. l'application ne se lance pas
    Par bennour.mohamed dans le forum Android
    Réponses: 10
    Dernier message: 15/03/2011, 11h37
  4. [WD12] Application client qui ne se lance pas
    Par bruce207 dans le forum WinDev
    Réponses: 5
    Dernier message: 05/06/2009, 03h12
  5. Probème d'application qui ne se lance pas sous XP
    Par ivanleterrible dans le forum Windows XP
    Réponses: 4
    Dernier message: 26/05/2006, 19h22

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