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 :

[Débutant]Importer un module situé dans le même répertoire que celui du script actuel


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut [Débutant]Importer un module situé dans le même répertoire que celui du script actuel
    Bonjour,

    J'ai un module, et, à partir de ce module, je souhaite importer un autre module, dont le nom est bien sûr connu.

    Le module à importer est dans le même répertoire que le module principal, MAIS, le répertoire courant (obtenu par os.getpwd() ) peut être n'importe lequel.

    Comment faire ?

    Merci d'avance,
    ProgVal

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    Bonjour,

    si tu as titi.py et toto.py dans le même répertoire, pour importer titi dans toto, il suffit de faire:


  3. #3
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    Arf...


    En fait, mon script toto.py est utilisé pour scripter une application (XChat, en l'occurence).

    Et le répertoire de travail est /home/progval/Documents (malgré que les scripts soient dans un tout autre répertoire)

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    ok, donc tu lance le script titi.py depuis un autre répertoire que le sien ?

    la méthode pas propre de faire, c'est de modifier PYTHONPATH:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    export PYTHONPATH=$PYTHONPATH:/le/chemin/vers/les/sources
    une autre solution consiste à faire ceci dans le script principal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import sys.path
    sys.path.append("/le/chemin/vers/les/sources")
    la méthode propre consiste à passer un peu de temps sur cette page:

    http://docs.python.org/distutils/

    bonne lecture

  5. #5
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    Ok. Mais dans ce cas, comment récupérer le chemin du répertoire où se trouve le script ?

  6. #6
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    je crois bien qu'il y a dans le module os, une fonction retournant le chemin du script exécuté, ainsi qu'une fonction pour changer le répertoire courant.

    En effet, si tu lances toto.py depuis un autre répertoire que le répertoire où se trouve toto.py, "import titi" fera chercher titi.py, entres-autres, dans le répertoire courant . D'après un vague souvenir en tous cas...

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    je suppose que tu parles de la variante avec sys.path:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import os.path
    import sys.path
    sys.path.append(os.path.dirname(__file__))
    pas testé mais ça doit marcher.

    Ca fait bidoulle quand même , vaut mieux utiliser distutils hein

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 18/07/2014, 11h29
  2. [POI]: ecrire dans le même fichier que celui en lecture
    Par mouss4rs dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 21/02/2012, 19h00
  3. Réponses: 1
    Dernier message: 24/11/2011, 13h25
  4. [XL-2007] FSO TextStream - Créer un fichier txt dans le même répertoire que le classeur Excel
    Par Sclarckone dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/12/2010, 16h15

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