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 :

Import Relatif de Module [Python 3.X]


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Août 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2018
    Messages : 8
    Par défaut Import Relatif de Module
    Bonjour,
    Je cherche à utiliser un même module pour deux programmes,
    mais je ne sais pas faire suivant cette structure:

    myprojects

    -- Myproject_1
    ----- MyprojectMain_1.py ( from Commun.Subprogram_1 import calcul_1)

    -- Myproject_2
    ----- MyprojectMain_2.py ( from Commun.Subprogram_1 import calcul_1)

    -- Commun
    ----- Subprogram_1.py (def calcul_1()
    ----- Subprogram_2.py


    Existe-t-il une solution pour eviter de dupliquer le dossier "Commun"?

    Les deux exemples ci-dessous correspondent à une façon de faire, mais qui me parait complexe.

    d'avance merci.

    --------------------------------

    Je sais faire, mais cela duplique le dossier "Commun".

    myprojects


    -- Myproject_1
    ----- MyprojectMain_1.py ( from Commun.Subprogram_1 import calcul_1)

    -------- Commun
    ----------- Subprogram_1.py (def calcul_1()
    ----------- Subprogram_2.py

    -- Myproject_2
    ------- MyprojectMain_2.py ( from Commun.Subprogram_1 import calcul_1)

    -------- Commun
    ----------- Subprogram_1.py (def calcul_1()
    ----------- Subprogram_2.py

    --------------------------------

    Dans le même esprit, j'ai besoin d'appeler une fonction de MyprojectMain_2.py depuis MyprojectMain_1.py,
    Ce qui ferait:

    myprojects

    -- Myproject_1
    ----- MyprojectMain_1.py ( from Commun.Subprogram_1 import calcul_1 )
    ( from Myproject_2.yprojectMain_2 import toto )

    -------- Commun
    ----------- Subprogram_1.py (def calcul_1()
    ----------- Subprogram_2.py


    -------- Myproject_2
    ----------- MyprojectMain_2.py ( from Commun.Subprogram_1 import calcul_1 )
    ( def toto(): )

    ----------- Commun
    ---------------- Subprogram_1.py (def calcul_1()
    --------------- Subprogram_2.py
    Fichiers attachés Fichiers attachés

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par JPCheval Voir le message
    Je cherche à utiliser un même module pour deux programmes,
    mais je ne sais pas faire suivant cette structure:

    myprojects

    Myproject_1
    MyprojectMain_1.py ( from Commun.Subprogram_1 import calcul_1)

    Myproject_2
    MyprojectMain_2.py ( from Commun.Subprogram_1 import calcul_1)

    Commun
    Subprogram_1.py (def calcul_1()
    Subprogram_2.py


    Existe-t-il une solution pour eviter de dupliquer le dossier "Commun"?
    Tu peux positionner "Commun" plus haut dans l'arborescence, et créer des liens symboliques dans tes deux projets. Ou bien imaginons que tu aies l'arborescence suivante
    - Commun
    - Myprojetc1
    - Myproject2
    Dans chacune des Main tu rajoutes ".." à sys.path ce qui leur permettra à chacun de voir le dossier "Commun" situé (de leur point de vue) un niveau au dessus.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par JPCheval Voir le message
    Existe-t-il une solution pour eviter de dupliquer le dossier "Commun"?
    Est-ce que vous dupliquez les modules standards tel que sys ou os que vous utilisez certainement depuis plusieurs programmes où qu'ils soient? Non. Donc il existe dans Python une mécanique qui permet de faire ce genre de choses.

    Si ça existe, on en parle certainement dans des tutos. Le tuto. tout en haut de la liste des tutos à consulter est celui qui est livré avec Python. Sa table des matières indique un chapitre sur les modules qui raconte comment sont importés les modules standards et le rôle de sys.path pour trouver le reste.

    Vous constaterez qu'il y a plusieurs solutions pour répondre à votre question: techniquement, toutes fonctionnent, en choisir une se fera suivant des critères non techniques (et on ne choisira pas pour vous).

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

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Août 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2018
    Messages : 8
    Par défaut Je vais voir les tutos indiqués
    Bonjour,
    Merci pour vos réponses.
    Je vais regarder cette notion sys.path que je ne maitrise pas.
    Mais avec le lien sur les tutos, je devrais me trouver mon bonheur.
    Je vous tiens au courant très rapidement pour clôturer cette discution.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Août 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2018
    Messages : 8
    Par défaut Resolu par abandon
    Bonjour,
    Je close la discussion, mais je trouve que le langage Python n'est pas suivant ma compréhension, prêt à gérer des sous programme commun à plusieurs projet.
    Pour simplifier j'ai dupliquer les sous-programmes en trois endroit et e gérer la mise à jour des "folder" identique à travers SVN.
    Beaucoup de manipulation pour quels que chose que me parait être très Basic.
    Encore Merci pour votre soutient.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par JPCheval Voir le message
    je trouve que le langage Python n'est pas suivant ma compréhension, prêt à gérer des sous programme commun à plusieurs projet.
    Hum... C'est pour ça que Python est un des langages les plus populaires.

    Citation Envoyé par JPCheval Voir le message
    Beaucoup de manipulation pour quels que chose que me parait être très Basic.
    Moi je dirais plutôt "encore beaucoup de choses à apprendre pour arriver enfin à faire effectivement du très basique"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. [VBA-E]Exporter / importer tous les modules et frm d'un projet
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 6
    Dernier message: 16/03/2013, 18h37
  2. Réponses: 6
    Dernier message: 22/06/2009, 08h51
  3. [VBA]Exporter / importer tous les modules et frm d'un projet
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 12/02/2007, 16h31
  4. [WinCVS] Importer un nouveau module
    Par kloorane dans le forum CVS
    Réponses: 2
    Dernier message: 18/09/2006, 12h22
  5. blocage base après importation d'un module
    Par voodoo dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2004, 15h15

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