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 :

Problème avec Py2app -- no module named OS ligne 22 site.py


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 23
    Par défaut Problème avec Py2app -- no module named OS ligne 22 site.py
    Bonjour

    J'essai de compilé un programme avec Py2app sur Mac OS (Yosemite)

    La compilation fonctionne mais l'app ne ce lance pas. dans les log systeme je me retrouve avec ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    May 18 10:44:10 Mac-mini-de-Joris.local server[1996]: Traceback (most recent call last):
    May 18 10:44:10 Mac-mini-de-Joris.local server[1996]:   File "/Library/Python/2.7/site-packages/py2app-0.10-py2.7.egg/py2app/apptemplate/lib/site.py", line 22, in <module>
    May 18 10:44:10 Mac-mini-de-Joris.local server[1996]:     import os
    May 18 10:44:10 Mac-mini-de-Joris.local server[1996]: ImportError: No module named os
    May 18 10:44:10 Mac-mini-de-Joris com.apple.xpc.launchd[1] (com.***.osx.backup.74440[1996]): Service exited with abnormal code: 1
    Avez vous une idée ? ^o)

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #!/usr/bin/python2.7
    """
    setup.py - script for building MyApplication
     
    Usage:
        % python setup.py py2app
    """
    from distutils.core import setup
    import py2app
     
    opts = { 'includes' : ('os', 'sys', 'email','pytz' ),
             'argv_emulation':1,
             'plist': {
                'CFBundleDisplayName': 'Patate 3.7',
                'CFBundleGetInfoString': "Patate backdown",
                'CFBundleIdentifier': "com.patate.osx.backdown",
                'CFBundleVersion': "3.7.0",
                'CFBundleShortVersionString': "3.7.0",
                'NSHumanReadableCopyright': "Copyright 2016, Patate, All Rights Reserved"
             }
    }
    setup(
        app=['server.py'],
        options={'py2app':opts}
    )
    Merci pour votre aide :-D

  2. #2
    Membre expérimenté Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Par défaut
    Citation Envoyé par Prestigej Voir le message
    May 18 10:44:10 Mac-mini-de-Joris.local server[1996]: Traceback (most recent call last):
    May 18 10:44:10 Mac-mini-de-Joris.local server[1996]: File "/Library/Python/2.7/site-packages/py2app-0.10-py2.7.egg/py2app/apptemplate/lib/site.py", line 22, in <module>
    May 18 10:44:10 Mac-mini-de-Joris.local server[1996]: import os
    May 18 10:44:10 Mac-mini-de-Joris.local server[1996]: ImportError: No module named os
    May 18 10:44:10 Mac-mini-de-Joris com.apple.xpc.launchd[1] (com.***.osx.backup.74440[1996]): Service exited with abnormal code: 1

    C'est écrit noir sur Blanc qu'il ne trouve pas le module os . Donc en principe tu devrais commencer par l'importer .

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juin 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Juin 2016
    Messages : 2
    Par défaut Question
    Bonjour je suis dans le même cas de figure et je ne parvient pas à exécuter mon application sur un autre Mac.
    Avez-vous pu résoudre ce problème ?

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juin 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Juin 2016
    Messages : 2
    Par défaut
    Après quelques essais j'ai pu trouver un contournement au problème.

    Pour rappel mon problème apparaissait après génération d'une application sur un Mac et exécution sur un autre. Le Mac qui produisant l'application n'avait pas de soucis pour la lancer.

    Au final j'ai généré l'application directement sur le second Mac et je n'ai pas eu de problème pour la lancer.
    Ce genre de contrainte fait que py2app perd un peu de son intérêt, mais c'est la seule solution que j'ai trouvé.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 4
    Par défaut
    Pour une raison inconnue, lorsqu'une application est packagée avec py2app sur un macos A et exécutée sur un macos B, les répertoires de recherche de la fonction "import" se limitent à ceux contenu dans l'app. Ce qui est vraiment problématique puisque l'app ne contient pas les packages python de base. Si quelqu'un a une explication a ce comportement, qu'il n'hésite pas à donner des détails.

    Si vous voulez voir les packages qui posent problème, il suffit d'activer le mode verbose de python avec la variable PYTHONVERBOSE:
    Et d'ensuite exécuter votre app en console, en allant chercher l’exécutable correspondant qui se trouve dans le dossier ./Contents/MacOS de votre app.

    Le premier package manquant est assez obvious, il s'agit de "os"

    Pour corriger le problème, dans le fichier Info.plist, il faut modifier PyResourcePackage et ajouter le chemin du dossier contenant "os.py":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <key>PyResourcePackages</key>
    <array>
    	<string>/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/</string>
    </array>
    Ensuite un second package manquait à mon app, il s'agissait de "time", j'ai encore du modifier PyResourcePackages et ajouter le sous répertoire lib-dynload pour donner l'accès à "time.so" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <key>PyResourcePackages</key>
    <array>
    	<string>/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/</string>
    	<string>/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload</string>
    </array>
    Et pour finir un dernier package manquait à l'appel, il s'agissait de Carbon, utilisé par wxPython (si quelqu'un sait expliquer l'usage de Carbon par wxPython sur Yosemite, ça m'intrigue)
    Version finale du fichier Info.plist de mon app:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <key>PyResourcePackages</key>
    <array>
    	<string>/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/</string>
    	<string>/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload</string>
    	<string>/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac</string>
    </array>
    En fonction des packages que vous utilisez, il faudra ajouter une ou plusieurs de ces lignes. Si jamais il vous manque encore des packages, il suffit de chercher dans les sous répertoire de /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/, tout devrait se trouver là. Par contre si vous ne trouvez pas un package, il s'agit probablement d'un package custom installé avec pip ou autre, et du coup il faudra indiquer à votre setup.py de l'inclure directement dans l'app.

    Au passage ça a également résolu les problèmes que mon app avait pour écrire dans ses fichiers de log, à nouveau si quelqu'un peut m'expliquer...

    voili voiloù, en espérant que ça aide quelqu'un

Discussions similaires

  1. Problème avec Network Shutdown Module pour être reconnu par un onduleur MGEUPS
    Par NewNovice dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 10/07/2009, 16h31
  2. Problème avec ordre des modules
    Par rafailow dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2008, 21h10
  3. Problème avec un nouveau module
    Par fontomas dans le forum Modules
    Réponses: 3
    Dernier message: 29/05/2008, 15h14
  4. Réponses: 1
    Dernier message: 16/08/2007, 16h42
  5. Problème avec un tableau et saut de ligne
    Par ero-sennin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 08/03/2006, 18h48

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