python python-3.x

python - Módulo de recarga que proporciona NameError: name ''reload'' no está definido



python-3.x (6)

Borraste tu variable __builtins__.

¿Cómo arreglar esto? No elimine __builtins__.

¿Puede alguien explicar paso a paso qué significa ese mensaje de error?

Significa que Python no puede encontrar la función "recargar".

recargar (script4.py)

Esto es incorrecto. si hiciste "import script4", entonces debes hacer "reload (script4)"

Estoy tratando de volver a cargar un módulo que ya importé en Python 3. Sé que solo necesita importar una vez y ejecutar nuevamente el comando de import no hará nada.

La ejecución de reload(foo) está dando este error:

Traceback (most recent call last): File "(stdin)", line 1, in (module) ... NameError: name ''reload'' is not defined

¿Qué significa el error?


Para ampliar las respuestas escritas anteriormente, si desea una solución única que funcione en las versiones 2 y 3 de Python, puede usar lo siguiente:

try: reload # Python 2.7 except NameError: try: from importlib import reload # Python 3.4+ except ImportError: from imp import reload # Python 3.0 - 3.3


Recomiendo usar el siguiente fragmento ya que funciona en todas las versiones de Python (requiere six ):

from six.moves import reload_module reload_module(module)


reload es un built-in en Python 2, pero no en Python 3, por lo que se espera el error que está viendo.

Si realmente debe volver a cargar un módulo en Python 3, debe usar:


Para> = Python3.4:

import importlib importlib.reload(module)

Para <= Python3.3:

import imp imp.reload(module)

Para Python2.x:

Use la función de reload() integrada reload() .

reload(module)


import imp imp.reload(script4)