Partage
  • Partager sur Facebook
  • Partager sur Twitter

ImportError: Import by filename is not supported.

Sujet résolu
    10 décembre 2015 à 16:07:14

    Bonjour à tous !

    Je cherche à importer un fichier par la fonction __import__("./Source/monFichier") mais celle ci m'affiche:

    ImportError: Import by filename is not supported.

    Es-ce que quelqu'un a une idée pour corriger ça ?

    Merci de votre attention !

    • Partager sur Facebook
    • Partager sur Twitter

    Clic ici petit curieux

      10 décembre 2015 à 17:49:14

      J'ai testé et il faut mettre . à la place des / (à considérer comme un objet). Je pense que c'est le chemin relatif qu'il faut utiliser. Essaie:

      #Ne pas oublier d'importer le fichier dans une variable
      donnees = __import__("Source.monFichier")


      PS: Néanmoins, l'aide intégrée précise que c'est plutôt à python d'utiliser cette méthode. Si tu veux importer quelque chose, il vaut mieux utiliser le module importlib. Je te remets ce que l'aide dit:

      Import a module. Because this function is meant for use by the Python
      interpreter and not for general use it is better to use
      importlib.import_module() to programmatically import a module.



      • Partager sur Facebook
      • Partager sur Twitter
      Précepte: Le mieux est l'ennemi du bien
      Anonyme
        10 décembre 2015 à 20:14:36

        Il y a une solution c'est ajouter dans sys.path le chemin du fichier à l'exécution

        import sys
        sys.path.insert(0, 'chemin_du_dossier') # insérer dans sys.path le dossier contenant le/les modules
        
        import fichier # module concerné

        Le fait de l'insérer au début de la liste permet d'éviter les conflits dans la recherche des éléments de la liste...

        Source

        • Partager sur Facebook
        • Partager sur Twitter
          10 décembre 2015 à 22:09:11

          Merci Olygrim ça fonctionne parfaitement avec un point !

          Je me demandais juste si importLib fonctionnait de la même maniere que __import__ ?

          oldProgrammer Le problème de cette technique est qu'elle semble nécessité un chemin absolut. Donc si je change mon programme principale d'endroit, ça ne fonctionne plus. Et dans mon cas, c'est important. Mais merci pour ta réponse !

          Je valide le topic puisque tout fonctionne correctement. Merci encore ;)

          • Partager sur Facebook
          • Partager sur Twitter

          Clic ici petit curieux

          ImportError: Import by filename is not supported.

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown