Estoy usando Python 3.2.2. Cuando escribo un programa simple, encuentro el problema.
>>> 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?
python
python-3.x
MindHacks
fuente
fuente

reload.import recommendations. ¿Por qué pensaste que necesitabas usarreload()?reload, desafortunadamente.with open('file', 'r', encoding='utf-8') as f: do_whatever. No hay absolutamente ninguna necesidad de recargar () módulos en programas simples, o realmente en cualquier programa de Python.Respuestas:
Probablemente querías
importlib.reload().from importlib import reloadEn Python 2.x, esto era incorporado , pero en 3.x, está en el
importlibmódulo.Tenga en cuenta que el uso
reload()fuera del intérprete generalmente es innecesario, ¿qué estaba tratando de hacer aquí?fuente
impes un módulo, no un archivo. (Está integrado en el núcleo del intérprete y no corresponde a ningún archivo). Y sí, para usarloimp.reloadtienes que importarimp, pero eso no es gran cosa.impdonde lo usesreload(), sí. Así es como funciona el espacio de nombres. ¿Por qué querría volver a cargar un módulo fuera del indicador interactivo de todos modos?Una actualización de la respuesta de @Gareth Latty.
impse depreció en Python 3.4. Ahora quieresimportlib.reload().from importlib import reloadfuente
Prueba
importlib.reload.from importlib import reload reload(module_name)fuente
Como han dicho otros, es necesario
importlib.reload(module)o en algún momento anterior es necesariofrom importlib import reload. Pero puede ocultarlofrom importlib import reloaden un archivo de inicialización. Asegúrese de quePYTHONSTARTUPesté definido en su shell. Por ejemplo,Podría ser una línea razonable para agregar a su
~/.bash_profile, si su shell es bash, y dependiendo de dónde almacene sus archivos de Python. (Si sigue estas instrucciones, inicie una nueva ventana de terminal en este punto para que se ejecute la línea). Luego, puede poner la líneafrom importlib import reloaden
~/python/startup.pyy sucederá automáticamente. (Nuevamente, si está siguiendo, comience una nueva sesión de Python en este punto). Esto puede parecer un poco complejo solo para resolver este problema, pero es algo que solo tiene que hacer una vez, y luego para cada problema similar en la línea de "Ojalá Python siempre hiciera esto", una vez que encuentre la solución, puede ponerla~/python/startup.pyy olvidarse de ella.fuente