Partage
  • Partager sur Facebook
  • Partager sur Twitter

chemin relatif python

Sujet résolu
    22 juillet 2021 à 15:48:18

    Bonjour, je voudrais savoir comment importer un module qui n'est pas dans mon dossier

    example:

    test
    |- __init__.py
    |- app1
    |  |- __init__.py
    |  |- main1.py
    |- app2
    |  |- __init__.py
    |  |- main2.py
    
    
    

    je voudrais savoir si on pouvait importer main2 depuis main1 

    merci

    • Partager sur Facebook
    • Partager sur Twitter
      22 juillet 2021 à 16:33:36

      Si test est un package, le chemin sera "test.app1.main2" ou "..app1.main2" sinon il faut ajouter le chemin (...test) dans le PYTHONPATH ou dans sys.path.

      • Partager sur Facebook
      • Partager sur Twitter
        23 juillet 2021 à 14:15:29

        j'ai fait ce que vous m'avez dit : mais il y a une erreur: ImportError: attempted relative import beyond top-level package
        • Partager sur Facebook
        • Partager sur Twitter
          23 juillet 2021 à 14:46:14

          Si tu nous donnais le chemin complet où se trouve le programme principal et le package que tu veux importer?
          et le fichier devrait se terminer par  .py
          Par exemple:
          C:\Users\<ton nom>\Documents\projets_python
          /home/<ton nom>/src/projets_python
          ou quelque chose du genre.
          • Partager sur Facebook
          • Partager sur Twitter

          Le Tout est souvent plus grand que la somme de ses parties.

            23 juillet 2021 à 15:12:20

            AntoineBarbier12 a écrit:

            j'ai fait ce que vous m'avez dit : mais il y a une erreur: ImportError: attempted relative import beyond top-level package


            donc 2nde méthode donnée par mps, ajouter ..\test au pythonpath ou à sys.path dans ton code avant l'import
            • Partager sur Facebook
            • Partager sur Twitter
              24 juillet 2021 à 10:40:09

              umfred a écrit:

              AntoineBarbier12 a écrit:

              j'ai fait ce que vous m'avez dit : mais il y a une erreur: ImportError: attempted relative import beyond top-level package


              donc 2nde méthode donnée par mps, ajouter ..\test au pythonpath ou à sys.path dans ton code avant l'import


              merci ça marche
              • Partager sur Facebook
              • Partager sur Twitter
                24 juillet 2021 à 12:27:06

                Ajouter un dossier à la liste sys.path est réservé à des usages plus spécifiques, autres que des importations intra-paquetages.
                Écrire import ..app2.main2 dans test/app1/main1.py devrait fonctionner, vous avez du faire une erreur quelque part.

                • Partager sur Facebook
                • Partager sur Twitter

                chemin relatif python

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                • Editeur
                • Markdown