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:
-
importlib.reload
para Python 3.4 y superior -
imp.reload
para Python 3.0 a 3.3 (obsoleto desde Python 3.4 a favor deimportlib
)
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)