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 ?