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 :

Hierarchie d'un package


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut Hierarchie d'un package
    Bonjour à tous.

    Je me lance dans la distribution de l'un de mes codes sous la forme d'un package donc.

    Pour l'instant démarrons comme suit :
    PkgTest
    ..|_setup.py
    ..|_pkgtest
    ......|_ __init__.py (fichier vide)
    ......|_foo.py

    foo.py contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def test():
        print("Test")
    et setup.py :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    from setuptools import setup
     
    setup(name='pkgtest',
          packages=['pkgtest'],
          )
    J'installe ce package avec pip, je lance python puis tape ceci dans ma console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    from pkgtest import foo
    foo.test()
    from pkgtest.foo import test
    test()
    et là tout est OK.

    Maintenant je rajoute un peu de structure dans mes fichiers :
    PkgTest
    ..|_setup.py
    ..|_pkgtest
    .......|_ __init__.py
    .......|_examples (un dossier vide pour l'instant)
    .......|_src
    ............|_ __init__.py (fichier vide)
    ............|_foo.py

    foo.py est inchangé et setup.py devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    from setuptools import setup
     
    setup(name='pkgtest',
          packages=['pkgtest'],
          package_dir={'pkgtest': 'pkgtest/src'},
          )
    et dans le __init__.py que j'ai rajouté, je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from pkgtest.src import foo
    Là,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from pkgtest import foo
    fonctionne, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from pkgtest.foo import test
    ne fonctionne pas ....
    Bon si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from pkgtest.src.foo import test
    ça fonctionne mais le but est de pouvoir s'affranchir d'écrire le "src" pour mes utilisateurs.

    Merci de votre aide.

  2. #2
    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 lg_53 Voir le message
    ça fonctionne mais le but est de pouvoir s'affranchir d'écrire le "src" pour mes utilisateurs.
    La hiérarchie est donnée par l'arborescence sur le filesystem... Et ma lecture de la documentation me fait dire qu'il n'est pas facile de s'en affranchir sauf par un hack plus ou moins sordide.

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

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    L'idée n'est pas de modifier le comportement de la fonction import, mais plutôt de construire mon package de manière à ce qu'il ait le comportement voulu lorsque je fais un import dessus.

    Et à priori, c'est faisable au vu de ce que j'ai pu lire (mais forcément là il disait pas comment faire), en mettant ce qu'il faut dans le setup.py et dans les __init__.py

    J'ère sur la toile depuis 2 jours pour essayer de comprendre comment fonctionne ces outils.
    Là je suis plutôt en train d'explorer cette piste là, qui a l'air assez proche de mon problème :
    https://setuptools.readthedocs.io/en...ing-data-files

Discussions similaires

  1. Package devC++
    Par Fl0r3nt dans le forum Dev-C++
    Réponses: 15
    Dernier message: 29/10/2003, 14h42
  2. prob avec utilisation de package
    Par martijan dans le forum Modules
    Réponses: 13
    Dernier message: 11/07/2003, 09h37
  3. [JCreator] "package tools does not exists"
    Par snyper147 dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 2
    Dernier message: 04/05/2003, 20h08
  4. [Packages] Problème d'organisation
    Par lolo... dans le forum JBuilder
    Réponses: 5
    Dernier message: 22/04/2003, 13h05
  5. Vue Packages
    Par ced dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 01/04/2003, 08h32

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