2 votes

Importer des modules python dans un répertoire complètement différent

J'écris un script qui automatise l'utilisation d'autres script. Je l'ai configuré pour qu'il importe automatiquement d'autres modules de .py stockés dans un répertoire appelé dependencies en utilisant importlib.import_modules()

À l'origine, j'avais dependencies en tant que sous-répertoire de la racine de mon application, et cela a fonctionné correctement. Cependant, mon objectif est de faire en sorte que le répertoire dependencies stocké potentiellement partout où l'utilisateur le souhaite. Dans mon exemple personnel, il est situé dans mon dossier Dropbox tandis que mon script est exécuté à partir d'un répertoire entièrement différent.

Je n'arrive plus à détecter et à importer les modules et je suis à court d'idées.

Quelqu'un aurait-il une meilleure idée de la manière d'y parvenir ?

Il s'agit d'un exemple de la structure du chemin : E: |_ Scripts: | |_ Mokha.py | |_ Dropbox: | |_ Dependencies: | |_ utils.py

Voici mon code pour l'importation : (je lis un fichier JSON pour les noms de dépendances et je passe en boucle sur chaque élément de la liste)

def importPythonModules(pythonDependencies): chdir(baseConfig["dependencies-path]) for dependency in pythonDependencies: try: moduleImport = dependency module = importlib.import_module(moduleImport) modules[dependency] = module print("Loaded module: %s" % (dependency)) except ModuleNotFoundError as e: print(e) raise Exception("Error importing python dependecies.") chdir(application_path)

L'erreur que j'obtiens est la suivante No module named 'utils'

J'ai essayé de mettre un init .py à la fois dans le dossier des dépendances, dans la racine de ma dropbox, et dans les deux en même temps, sans résultat.

Cela doit être possible, n'est-ce pas ?

0voto

ChildishhAlbino Points 31

MISE À JOUR : J'ai résolu le problème.

sys.path.append(baseConfig['dependencies-path'])

Non super La solution n'est pas satisfaisante, mais elle fonctionne pour l'instant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X