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 :

Récupérer le chemin du module en cours d'exécution


Sujet :

Python

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Février 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Février 2003
    Messages : 95
    Points : 85
    Points
    85
    Par défaut Récupérer le chemin du module en cours d'exécution
    Bonjour,

    Je recherche un moyen de récupérer le chemin du module en cours d'exécution en jython.
    Je n'ai rien trouvé ni dans les cours Python dans les modules sys (à part sys.argv[0]) et os.path, sys.argv[0] plante car la liste sys.argv est vide !
    C'est peut-être dû au fait qu'il s'agit de code jython et non pur python ...

    Mathieu
    Un verre vide se plaint, un verre plein se vide ...

  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 781
    Points
    36 781
    Par défaut
    Salut
    En Jython je sais pas mais en Python __file__ suffit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print 'file: ', __file__
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Février 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Février 2003
    Messages : 95
    Points : 85
    Points
    85
    Par défaut
    Merci pour cette réponse, je ne connaissait pas.

    L'appel de __file__ plante avec une exception "NameError: __file__".
    J'ai affiché le dictionnaire globals, il ne contient que __name__, __author__, __date__ et __doc__ en plus des classes et modules importés.

    Merci quand même.
    Mathieu
    Un verre vide se plaint, un verre plein se vide ...

  4. #4
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Bonjour.

    Peux-tu filer tes lignes de code car ce qui a été proposé marche normalement "toujours" ?

  5. #5
    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 781
    Points
    36 781
    Par défaut
    Salut
    Mon premier programme Jython!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import java.lang as lang
    print 'file: ', __file__
    Ca sort avec tout en bas ce qu'on veut.... ouf:

    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
    *sys-package-mgr*: processing new jar, '/Applications/NetBeans/NetBeans 6.9.app/Contents/Resources/NetBeans/python/jython-2.5.1/jython.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/Resources/Java/JavaRuntimeSupport.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/ui.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsse.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/jce.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/charsets.jar'
    *sys-package-mgr*: processing new jar, '/Library/Java/Extensions/postgresql-8.4-701.jdbc3.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/AppleScriptEngine.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/dns_sd.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/j3daudio.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/j3dcore.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/j3dutils.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/jai_codec.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/jai_core.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/mlibwrapper_jai.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/MRJToolkit.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/QTJava.zip'
    *sys-package-mgr*: processing new jar, '/System/Library/Java/Extensions/vecmath.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext/apple_provider.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext/dnsns.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext/localedata.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext/sunjce_provider.jar'
    *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext/sunpkcs11.jar'
    file:  /Users/wiztricks/dev/netbeans/JythonSamples/src/jythonsamples.py
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Curieux !
    Chez moi ça marche au poil.
    Config: OS Ubuntu Lucid
    IDE netbeans 6.9
    Jython 2.5.1
    sortie
    file: /home/gilles/sources_python/testjython/src/testjython.py
    De plus pas besoin de l'import
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  7. #7
    Membre régulier

    Profil pro
    Inscrit en
    Février 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Février 2003
    Messages : 95
    Points : 85
    Points
    85
    Par défaut
    Je poursuis mes tests ...

    Dans un script jython lancé avec la ligne de commande :
    $JAVA_HOME/bin/java -Dpython.path=$PYTHONPATH -classpath "$WORKSPACE/jython.jar" org.python.util.jython monjython.py
    ça fonctionne correctement.

    Mais le contexte est un peu particulier : il s'agit d'une scriptlet lancée côté serveur par un appel webservice. Et là, point de __file__ dans le globals !

    Je pense que c'est lié au contexte d'exécution (serveur tomcat / axis2 ?)

    Pour rambc qui a demandé, voilà le code (difficile de faire plus simple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    self.log(LOG_DEBUG, "ScriptletCAL - globals : " + str(globals()))
    self.log(LOG_DEBUG, "ScriptletCAL - file : " + __file__)
    Et dans la log :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2010-07-09 09:47:10,077  [http-40001-4] DEBUG EnginesScriptlet  *-* ScriptletCAL - globals : {'sys': sys module, 'os': <jclass org.python.modules.os 4>, '__name__': 'main', 'HashMap': <jclass java.util.HashMap 6>, '__doc__': None} *-*
    A l'écran
    Au fait, merci pour les Cours et tutoriels pour apprendre Python , en particulier celui la est épatant : Apprendre à programmer avec Python 3 par Gérard Swinnen

    Un verre vide se plaint, un verre plein se vide ...

Discussions similaires

  1. [AC-2007] Récupérer le nom du formulaire en cours à partir d'un module.
    Par Tifriis dans le forum VBA Access
    Réponses: 4
    Dernier message: 17/01/2011, 11h52
  2. Récupérer le répertoire du script en cours d'exécution
    Par rt15 dans le forum Shell et commandes GNU
    Réponses: 21
    Dernier message: 21/11/2009, 11h54
  3. Réponses: 2
    Dernier message: 15/04/2009, 10h03
  4. Récupérer chemin absolu du script en cours d'exécution
    Par greatmaster1971 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 15/09/2008, 09h07
  5. Réponses: 2
    Dernier message: 29/01/2004, 11h05

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