NameError: name 'recharger' n'est pas défini
Je suis à l'aide de python 3.2.2. Quand j'écris un programme simple, je rencontre le problème.
>>> reload(recommendations)
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
reload(recommendations)
NameError: name 'reload' is not defined
Comment dois je faire?
- Un "simple" programme n'a pas besoin probablement
reload
. - Je veux utiliser "reload(recommandations)","des recommandations.abc()". Mais il ne peut pas trouver des recommandations
- Si vous n'avez pas importé recommandations, vous n'avez pas la recharger, vous devez l'importer.
import recommendations
. Pourquoi avez-vous penser que vous besoin d'utiliserreload()
? - La plupart des "programmes" de la lecture de fichiers avec des caractères non-latins avez besoin
reload
, malheureusement. - si vous pensez à quelque chose terrible que vous lisez, qui implique de les recharger(sys), ne jamais le faire. Il suffit de ne
with open('file', 'r', encoding='utf-8') as f: do_whatever
. Il n'y a absolument pas besoin de reload() modules dans les programmes simples, ou vraiment dans tout programme en python. - Le problème avec l'aide de
open
est que la plupart du temps, surtout si vous utilisezpandas
, il suffit de ne pas l'utiliser du tout, plutôt vous utilisez d'autres intégré des fonctions permettant de lire n'importe quel format en. En le faisant, vous ne spécifiez pas d'encodage lors de l'ouverture de ligne par ligne et à la (une des) solution(s) est d'utiliserreload(sys)
. Je suis d'accord qu'il semble lourd et c'est une mauvaise pratique, mais parfois, il ne faire le travail. Si, même dans ces cas, il y a de plus élégant des solutions, je ne sais pas.
Vous devez vous connecter pour publier un commentaire.
Que vous avez probablement envie
importlib.reload()
.En Python 2.x, c'était un builtin, mais dans le 3.x, c'est dans le
importlib
module.Notez que l'utilisation de
reload()
à l'extérieur de l'interprète n'est généralement pas nécessaire, que cherchiez-vous faire ici?imp.reload
vous devez importerimp
, mais ce n'est pas une grosse affaire.imp
où vous utilisezreload()
, oui. C'est comment namespacing œuvres. Pourquoi voudriez-vous pour recharger un module à l'extérieur de l'invite interactive de toute façon?Une mise à jour de @Gareth Latty de réponse.
imp
a été déprécié en Python 3.4. Maintenant, vous voulezimportlib.reload()
.Essayer
importlib.reload
.