在Jupyter(IPython)中是否有像Spyder一样的变量资源管理器?每次运行测试代码时,必须一直打印变量列表,这是非常不舒服的
这个功能已经实现了吗?如果是,如何启用它
更新
向下滚动到标有update的部分,以获得一个简单得多的方法
旧答案
这是一本关于如何制作自己的变量检查器的笔记本。我认为这是写回当jupyter笔记本电脑被称为ipython笔记本电脑,但它的工作在最新版本
我将在下面发布代码,以防链接中断
将IPyWidget导入为小部件#加载小部件框架。
从IPython.core.magics.namespace导入NamespaceMagics#用于查询命名空间。
#对于本例,请隐藏这些名称,以避免进一步污染命名空间
get_ipython().user_ns_hidden['widgets']=widgets
get_ipython()。用户_ns_hidden['NamespaceMagics']=NamespaceMagics
类VariableInspectorWindow(对象):
实例=无
定义初始化(self,ipython):
“”“公共构造函数。”“”
如果VariableInspectorWindow.instance不是None:
引发异常(“”)一次只能存在变量检查器的一个实例
在创建新实例之前,对活动实例调用close()。
如果丢失了活动实例的句柄,可以重新获取它
通过“VariableInspectorWindow.instance`.''”)
VariableInspectorWindow.instance=self
self.closed=False
self.namespace=NamespaceMagics()
self.namespace.shell=ipython.kernel.shell
self.\u box=widgets.box()
self.\u box.\u dom\u classes=['inspector']
self._box.background_color='#fff'
self._box.border_color='#ccc'
self.\u box.border\u width=1
自身边界半径=5
self.\u modal\u body=widgets.VBox()
self.\u model\u body.overflow\u y='scroll'
self.\u modal\u body\u label=widgets.HTML(值='nothooked')
self.\u modal\u body.children=[self.\u modal\u body\u label]
self.\u box.children=[
自我。_模态_体,
]
self.\u ipython=ipython
self.\u ipython.events.register('post\u run\u cell',self.\u fill)
def关闭(自我):
“”“关闭并卸下挂钩。”“”
如果不是自动关闭:
self.\u ipython.events.unregister('post\u run\u cell',self.\u fill)
self.\u box.close()
self.closed=True
VariableInspectorWindow.instance=无
def_填充(自):
“”“用变量信息填充self。”“”
values=self.namespace.who_ls()
self.\u model\u body\u label.value='<;table class=“table table bordered table striped”>&书信电报;tr>&书信电报;th>;名称</th>&书信电报;th>;类型</th>&书信电报;th>;价值</th></tr>&书信电报;tr>&书信电报;td>;'+\
“</td></tr>&书信电报;tr>&书信电报;td>;'。连接([{0}<;/td>;lt;td>;{1}<;/td>;lt;td>;{2})。格式(v,键入(eval(v))。uu name,str(eval(v)),表示值中的v])+\
“</td></tr></表>;'
def_ipython_显示器(自身):
“”“在使用display()或pyout显示变量时调用
检查员
self._box._ipython_display_u41;
使用以下命令内联运行:
inspector=VariableInspectorWindow(get\u ipython())
检查员
让它成为一个javascript弹出窗口
%%javascript
$('div.inspector')
.detach()
.prependTo($('body'))
.css({
“z索引”:999,
位置:'固定',
“长方体阴影”:“5px 5px 12px-3px黑色”,
不透明度:0.9
})
.draggable();
更新
日期:2017年5月17日
@jfbercher创建了一个nbextension变量检查器。源代码可以在这里看到jupyter_contrib_nbextensions。有关更多信息,请参阅文档
安装
使用者
pip安装jupyter\u contrib\u nbextensions
jupyter contrib nbextension安装--用户
虚拟环境
pip安装jupyter\u contrib\u nbextensions
jupyter contrib nbextension安装--系统前缀
使能
jupyter nbextension启用VariInspector/main
这是一个屏幕截图