Rechargement du module de donner NameError: name 'recharger' n'est pas défini
Je suis en train de recharger un module que j'ai déjà importé en Python 3. Je sais que vous avez seulement besoin d'importer une fois et l'exécution de la import
à nouveau la commande ne fait rien.
L'exécution de reload(foo)
donne cette erreur:
Traceback (most recent call last):
File "(stdin)", line 1, in (module)
...
NameError: name 'reload' is not defined
Que signifie l'erreur moyenne?
Vous devez vous connecter pour publier un commentaire.
reload
est une interface en Python 2, mais pas en Python 3, donc l'erreur que vous voyez n'est prévu.Si vous devez recharger un module en Python 3, vous devez utiliser:
importlib.reload
pour Python 3.4 et au-dessus deimp.reload
pour Python 3.0 à 3.3 (obsolète depuis Python 3.4 en faveur deimportlib
)reload
dans un script sont très rares sont en effet, et ceux qui emploient ce genre de sombre de l'art est rare de lire ce commentaire. Toutefois, si vous êtes l'élaboration d'un module et à l'aide d'une console IPython pour tester de manière interactive, puisreload
peut être pratique dans ce flux de travail. Comme @Evan dit, même si, méfiez-vous de l'import-temps les effets secondaires. En général, je dirais à éviterreload
ing de quelqu'un d'autre modules.reload
ing votre propre sens pendant moment de la conception.Pour >= Python3.4:
Pour <= Python3.3:
Pour Python2.x:
Utiliser la
reload()
fonction.importlib
à la place.Pour développer sur le déjà écrit des réponses, si vous voulez une solution unique qui fonctionnent sur les versions de Python 2 et 3, vous pouvez utiliser les éléments suivants:
Je recommande l'utilisation de l'extrait de code suivant qu'il fonctionne dans toutes les versions de python (nécessite
six
):Pour python2 et python3 de compatibilité, vous pouvez utiliser:
Si vous ne voulez pas utiliser des libs, alors la seule solution est de recréer le rechargement de la méthode de python 2 pour python 3 comme ci-dessous. L'utiliser dans le haut du module (ce qui suppose que python 3.4+).
BTW rechargement est très nécessaire si vous utilisez python fichiers comme des fichiers de configuration et que vous voulez éviter redémarrage de l'application.....
Vous avez supprimé de votre __les builtins__ variable.
Comment résoudre ce problème? Ne supprimez pas __les builtins__.
Cela signifie python ne peut pas trouver la fonction "recharger".
C'est incorrect. si vous l'avez fait "importer script4", alors vous devez le faire "reload(script4)"
__builtins__