usar tutorial notebook magic como python jupyter-notebook facilities

python - tutorial - Explorador de variables en Jupyter Notebook



jupyter notebook youtube (3)

¿Hay un explorador de variables en Jupyter (IPython) como en Spyder? Es muy incómodo tener que imprimir la lista de variables todo el tiempo cada vez que ejecuto el código de prueba.

¿Ya se implementó esta función? Si es así, ¿cómo habilitarlo?


ACTUALIZAR

Desplácese hacia abajo hasta la sección etiquetada actualización para un método mucho menos complicado.

ANTIGUA RESPUESTA

Aquí hay un cuaderno sobre cómo hacer su propio inspector de variables . Creo que fue escrito cuando jupyter notebook se llamó ipython notebook pero funciona en la última versión.

Publicaré el código a continuación en caso de que se rompa el enlace.

import ipywidgets as widgets # Loads the Widget framework. from IPython.core.magics.namespace import NamespaceMagics # Used to query namespace. # For this example, hide these names, just to avoid polluting the namespace further get_ipython().user_ns_hidden[''widgets''] = widgets get_ipython().user_ns_hidden[''NamespaceMagics''] = NamespaceMagics class VariableInspectorWindow(object): instance = None def __init__(self, ipython): """Public constructor.""" if VariableInspectorWindow.instance is not None: raise Exception("""Only one instance of the Variable Inspector can exist at a time. Call close() on the active instance before creating a new instance. If you have lost the handle to the active instance, you can re-obtain it via `VariableInspectorWindow.instance`.""") VariableInspectorWindow.instance = self self.closed = False self.namespace = NamespaceMagics() self.namespace.shell = ipython.kernel.shell self._box = widgets.Box() self._box._dom_classes = [''inspector''] self._box.background_color = ''#fff'' self._box.border_color = ''#ccc'' self._box.border_width = 1 self._box.border_radius = 5 self._modal_body = widgets.VBox() self._modal_body.overflow_y = ''scroll'' self._modal_body_label = widgets.HTML(value = ''Not hooked'') self._modal_body.children = [self._modal_body_label] self._box.children = [ self._modal_body, ] self._ipython = ipython self._ipython.events.register(''post_run_cell'', self._fill) def close(self): """Close and remove hooks.""" if not self.closed: self._ipython.events.unregister(''post_run_cell'', self._fill) self._box.close() self.closed = True VariableInspectorWindow.instance = None def _fill(self): """Fill self with variable information.""" values = self.namespace.who_ls() self._modal_body_label.value = ''<table class="table table-bordered table-striped"><tr><th>Name</th><th>Type</th><th>Value</th></tr><tr><td>'' + / ''</td></tr><tr><td>''.join([''{0}</td><td>{1}</td><td>{2}''.format(v, type(eval(v)).__name__, str(eval(v))) for v in values]) + / ''</td></tr></table>'' def _ipython_display_(self): """Called when display() or pyout is used to display the Variable Inspector.""" self._box._ipython_display_()

Ejecutar en línea con lo siguiente:

inspector = VariableInspectorWindow(get_ipython()) inspector

Que sea una ventana emergente de JavaScript;

%%javascript $(''div.inspector'') .detach() .prependTo($(''body'')) .css({ ''z-index'': 999, position: ''fixed'', ''box-shadow'': ''5px 5px 12px -3px black'', opacity: 0.9 }) .draggable();

ACTUALIZAR

Fecha: 17 de mayo de 2017

@jfbercher creó un inspector de variables nbextension. El código fuente se puede ver aquí jupyter_contrib_nbextensions . Para más información ver los docs .

Instalar

Usuario

pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user

Ambiente virtual

pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --sys-prefix

Habilitar

jupyter nbextension enable varInspector/main

Aquí hay una captura de pantalla;


Esto podría ayudarlo, aunque no es exactamente lo que ofrece Spyder y es mucho más simple:

Para obtener una lista de todas las variables definidas actualmente, ejecute who :

In [1]: foo = ''bar'' In [2]: who foo

Para más detalles, ejecute whos :

In [3]: whos Variable Type Data/Info ---------------------------- foo str bar

Para obtener una lista completa de las funciones integradas, consulte Comandos mágicos


Si usa Jupyter Notebooks dentro de Jupyter Lab, se ha discutido mucho sobre la implementación de un explorador / inspector de variables. Puedes seguir el problema here

A partir de ahora hay una extensión de Jupyter Lab en proceso que implementa un explorador de variables similar a Spyder. Se basa en la extensión del cuaderno que James mencionó en su respuesta. Puede encontrar la extensión de laboratorio (con instrucciones de instalación) aquí: https://github.com/lckr/jupyterlab-variableInspector