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

Bibliothèques tierces Python Discussion :

Transformer un jeu de scripts en module [Python 3.X]


Sujet :

Bibliothèques tierces Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut Transformer un jeu de scripts en module
    Hello,

    depuis quelques jours je bloque sur la mise d'une petite appli en module. Par module je veux dire un dossier que l'on peut poser dans site-packages et utiliser en faisant un import appli.

    Le problème est que ce n'est pas un simple script, mais un lot de 3 scripts qui s'appellent les uns les autres. J'ai bien sûr googlé et chatGPTé mais j'avoue que je n'ai pas compris grand chose... Quand l'import marche dans le fichier __init__, il ne marche pas dans l'appli et du coup il ne marche pas non plus dans un script externe qui voudrait utiliser l'appli.

    J'ai fait un jeu de fichiers minimaliste pour décrire mon problème. Si quelqu'un peut m'orienter vers une façon de faire qui garderait mes 3 scripts ensemble sans les dispatcher dans de différents répertoires... j'ai joint un zip avec le jeu de fichiers pour reproduire le problème.

    site-packages/lib/__init__.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import lib
    import tools
    import constants
    site-packages/lib/src/lib.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    from lib.src import tools
    from lib.src import constants
    def addDouble(value):
        return value + mul2(value)
    site-packages/lib/src/tools.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from lib.src.constants import *
    def mul2(value):
        return B * value
    site-packages/lib/src/constants.py
    pour les appeler de façon "conventionnelle" avec le nom du module en préfixe,
    quelque_par_sur_le_disque/dummy2.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import lib
    if __name__ == "__main__":
        print(lib.addDouble(33))  # to test lib.py
        print(lib.mul2(3)) # to test tools.py
        print(lib.A) # to test constants.py
    j'ai l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "/home/pfeuh/Documents/sources/python/test/dummy2.py", line 1, in <module>
        import lib
      File "/home/pfeuh/.local/lib/python3.10/site-packages/lib/__init__.py", line 2, in <module>
        import tools
    ModuleNotFoundError: No module named 'tools'
    et pour finir si je ne veux par exemple que les constantes,
    quelque_par_sur_le_disque/dummy.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from lib.constants import *
    print(A) # to test constants.py
    j'ai l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "/home/pfeuh/Documents/sources/python/test/dummy.py", line 1, in <module>
        from lib.constants import *
      File "/home/pfeuh/.local/lib/python3.10/site-packages/lib/__init__.py", line 2, in <module>
        import tools
    ModuleNotFoundError: No module named 'tools'
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. script perl (module telnet)
    Par oulai dans le forum Langage
    Réponses: 1
    Dernier message: 21/01/2011, 08h57
  2. Réponses: 4
    Dernier message: 23/11/2010, 14h26
  3. faire un uptime d'un serveur jeu en script bash
    Par kazylax dans le forum Linux
    Réponses: 0
    Dernier message: 04/08/2009, 17h02
  4. Script avec module telnet
    Par parisien91 dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 18/01/2009, 12h40
  5. tests des scripts, quels modules utiliser?
    Par Jasmine80 dans le forum Bioinformatique
    Réponses: 5
    Dernier message: 11/06/2007, 18h13

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