J'ai donc essayé de créer un programme simple qui va importer dynamiquement des modules dans un dossier avec un certain nom. Je cd avec os
dans le répertoire et je cours module = __import__(module_name)
car je suis dans une boucle for avec tous les noms de fichiers décrits étant itérés dans la variable nom_module.L'importation dynamique de modules aboutit à un ImportError
Mon seul problème est que je me fais frapper avec:
ImportError: No module named "module_name"
(en disant le nom de la variable que j'ai donné comme une chaîne). Le fichier existe, il est dans le répertoire mentionné et import
fonctionne très bien dans le même répertoire. Mais une importation normale normale ne fonctionne pas pour les modules du répertoire cd. Le code ressemble à ceci. Je suis désolé si c'est une question évidente.
import os
class Book():
def __init__(self):
self.name = "Book of Imps"
self.moduleNames = []
# configure path
def initialize(self):
path = os.getcwd() + '/Imp-pit'
os.chdir(path)
cwd = os.walk(os.getcwd())
x, y, z = next(cwd)
# Build Modules
for name in z:
if name[:3] == 'Imp':
module_name = name[:len(name) - 3]
module = __import__(module_name)
def start_sim():
s = Book()
s.initialize()
if __name__ == '__main__':
start_sim()