IPython Notebook会话中的多个目录和/或子目录?

时间:2012-06-13 19:19:51

标签: python ipython directory subdirectory

IPython文档页面建议打开几个不同的IPython笔记本会话是与不同目录或子目录中保存的笔记本进行交互的唯一方法,但这在任何地方都没有明确确认。

我面临的情况是,我可能需要与数百种不同的笔记本进行交互,这些笔记本根据不同的属性进行分类并存储在主目录的子目录中。我已将/main配置文件中的主目录(我们称之为ipython_notebook_config.py)设置为默认目录。

当我启动IPython笔记本时,它确实会显示/main/main内所有已保存的笔记本(但已保存的笔记本在/main内的子目录中)。

如何实现一个单独的IPython仪表板,向我显示{{1}} 中的笔记本,并且显示子目录,让我展开一个子目录并从其内容中选择,或者只显示所有笔记本从所有子目录?

每次启动新的IPython实例都是不可能的。

如果我需要这个能力,我愿意修补源代码。这是一种非常基本的功能,我们需要它,而且令人惊讶的是它不仅仅是默认的IPython行为。对于任何数量超过10或15的已保存笔记本,此功能必要

2 个答案:

答案 0 :(得分:21)

  

IPython文档页面建议打开几个不同的IPython笔记本会话是与不同目录或子目录中保存的笔记本进行交互的唯一方法,但这在任何地方都没有明确确认。

是的,这是Notebook服务器的当前(临时)限制。笔记本待办事项列表中的多目录支持非常高(不幸的是,列表很长,开发人员很少并且有日常工作),它还没有。到0.14(可能是秋天),您应该没有理由运行多个nb服务器,但是现在这是多个目录的唯一选择。简单的初稿缺少的是:

  1. 将个人笔记本与目录相关联(相当简单)和
  2. 用于简单文件系统导航的Web UI(稍微不那么简单)。
  3.   

    如果我需要这种能力,我愿意修改源代码

    限制因素,如果你想在源中寻找,是NotebookManager,它与特定目录相关联。如果你调整list_notebooks()方法来处理子目录,那么你就是90%。

    我对此也很好奇,所以我把一个快速示例here放在一起,让你至少可以在子目录中读取/运行/编辑/保存笔记本(行走深度限制为2,但很容易更改)。任何新笔记本都将位于顶级目录中,并且没有用于移动它们的UI。

答案 1 :(得分:2)

iPython笔记本的多目录支持(更常见的是“项目”支持)的界面和体系结构设计问题对于正确使用非常重要。

中描述了一种设计

IPEP 16: Notebook multi directory dashboard and URL mapping

正在讨论IPEP 16: Notebook multi directory dashboard and URL mapping · Issue #3166 · ipython/ipython