在IPython Notebook会话中如何使用多个目录和/或子目录?

32
IPython文档页面建议打开多个IPython笔记本会话是与不同目录或子目录中保存的笔记本交互的唯一方式,但这在任何地方都没有得到明确确认。我面临的情况是可能需要与数百个不同的笔记本互动,这些笔记本根据不同的属性进行分类并存储在主目录的子目录中。我已经将该主目录(我们称之为/main)设置为ipython_notebook_config.py配置文件中的默认目录。当我启动IPython笔记本时,它确实显示了在/main中的任何已保存笔记本(但未在/main中的子目录中保存的笔记本)。如何实现一个单一的IPython仪表板,它向我展示在/main中的笔记本和子目录,并允许我展开子目录并从其内容中选择,或者只显示所有子目录中的所有笔记本?每次启动新的IPython实例来完成这个任务是绝对不可行的。如果必须实现此功能,我愿意调整源代码。这是一种非常基本的功能,我们需要它,而且很奇怪它不是默认的IPython行为。对于超过10或15个保存的笔记本,此功能是必要的。

笔记本服务器将能够浏览到不同的目录,只是还没有实现。如果这对您很重要,欢迎您来帮助编写它,尽管我们正准备发布另一个版本,所以在那之前可能不会实现。 - Thomas K
2个回答

21
IPython文档页面建议打开多个IPython笔记本会话以与不同目录或子目录中的已保存笔记本进行交互,但这在任何地方都没有明确确认。是的,这是Notebook服务器当前(临时)的限制。多目录支持是笔记本待办事项清单中非常重要的一项(不幸的是,该清单很长,而开发人员很少并且有白天的工作),它只是还没有到达那里。到0.14(可能是秋季),您将没有理由运行多个nb服务器,但现在这是多个目录的唯一选项。一个简单的第一版所缺少的只是:1. 将各个笔记本与目录关联(相当微不足道);2. 简单的文件系统导航Web UI(稍微复杂一些)。我愿意尝试调整源代码以获得此功能。

如果你想在源代码中探索,限制因素是NotebookManager,它与特定目录相关联。如果你调整list_notebooks()方法以处理子目录,你已经完成了90%。

我也对此很好奇,所以我在这里快速拼凑了一个示例here,允许你至少读取/运行/编辑/保存子目录中的笔记本(遍历深度限制为2,但很容易更改)。任何新的笔记本都将位于顶层目录,没有UI来移动它们。


这个答案现在已经失效了,因为IPython 1.0支持目录导航。我当时将NotebookManager链接固定在了0.13版本上。 - minrk

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接