J'ai écrit un petit script. Il est conçu pour rechercher dans le répertoire python tous les modules disponibles (qu'ils soient installés ou non), puis il est supposé vérifier quels modules sont actuellement chargés, puis il offre une option pour charger dynamiquement un module de votre choix. Ce dernier utilise __import__()
parce que je lui passe une chaîne - (c'est là que j'ai un problème - mais j'y reviendrai bientôt) ... puis il donne la possibilité de "parcourir" le module pour toutes ses classes, fonctions, etc. (en utilisant dir([module name])
...).Je peux importer __import __() pour importer dynamiquement un module en python - Je sais que cette cause n'apparaît pas dans sys.modules
Le problème:
Lorsque le module est chargé dynamiquement - il est intégré dans un communiqué try/except
- si elle réussit, il signale que le « module est chargé » et si elle échoue, elle rapporte ... duh ... "Impossible de charger ..."
Si vous tapez le nom d'un module, par exemple un module nommé "uu", il est dit "chargé". Donc, je sais qu'il est en charge - cependant, quand je reviens appeler la fonction qui vérifie tous les modules CHARGÉS - il est vide (en utilisant sys.modules
)
Je pense que python charge le module dans un endroit temporaire qui n'est pas sys.modules
parce que quand je sors du script et vérifie sys.modules
il n'est pas là.
coller le script ici pas le lien de pâte –
Ce script est trop long pour mettre directement dans la question. –
Je ne peux pas coller le script entier - gs a raison, c'est trop long. Mais, ce n'est pas un long script que je promets: P. Je ne sais pas quelles parties sont assez importantes pour coller pour illustrer le problème ... mais je peux essayer de résumer: Essentiellement, il se lit comme ceci: var1 = raw_input ("Quel est le nom du module que vous voulez charger? : ") __import __ (var1) puis je le vérifie avec sys.modules PENDANT QUE LE SCRIPT EST EN COURS, - qui imprime une liste LONGUE de tous les modules qui sont chargés, mais le var1 (nom du module) n'est pas dans cette liste - et oui, je sais qu'il est en cours de chargement et est orthographié correctement: P. –