2012-04-13 16 views
33

Estoy usando python 3.2.2. Cuando escribo un programa simple, me encuentro con el problema.NameError: name 'reload' no está definido

>>> reload(recommendations) 
Traceback (most recent call last): 
    File "<pyshell#6>", line 1, in <module> 
    reload(recommendations) 
NameError: name 'reload' is not defined 

¿Cómo debería hacerlo?

+7

Un "programa simple" probablemente no necesite 'recargar'. – geoffspear

+0

Quiero usar "recargar (recomendaciones)", "recomendaciones.abc()". Pero no puede encontrar recomendaciones – MindHacks

+0

@MindHacks Si no ha importado las recomendaciones, no las vuelve a cargar, sino que las importa. '' recomendaciones de importación''. ¿Por qué crees que necesitas usar '' reload() ''? –

Respuesta

82

Probablemente haya querido importlib.reload().

from importlib import reload 

En Python 2.x, esto fue un builtin, pero en 3.x, está en el módulo importlib.

Tenga en cuenta que usar reload() fuera del intérprete generalmente no es necesario, ¿qué estaba tratando de hacer aquí?

+0

Gracias, funciona. Pero si quiero usar la recarga, ¿debo importar el archivo cada vez? – MindHacks

+0

@MindHacks: ¿De qué "archivo" estás hablando? –

+0

@Sven Marnach: imp ... – MindHacks

6

Una actualización de la respuesta de @Gareth Latty. imp se depreció en Python 3.4. Ahora quiere importlib.reload().

from importlib import reload 
Cuestiones relacionadas