【发布时间】:2015-06-30 09:52:21
【问题描述】:
我特别想知道运行代码的笔记本服务器的base_url。
在 IPython Notebooks 2.x 版中,我曾经做过以下操作:
config = get_ipython().config
print config['NotebookApp']['base_url']
但是,这在 IPython Notebook 3.x / Jupyter Notebooks 中不再适用。
编辑:关于我想要达到的目标的更多细节。
我在同一主机上的不同 Docker 容器中运行各种 IPython 服务器,这些容器通过不同的base_urls 访问。我想使用 quantopian/qgrid 包在 Notebook 中显示 Pandas DataFrame。最初 qgrid 没有处理自定义 base_url 前缀来提供 Javascript 依赖项的本地副本,但上面的代码允许我在 IPython 2 中找到 base_url 并将相关的 base_url 注入到 Javascript 模板中。
我还想在 Notebook 中使用 mpld3 库,在浏览他们的文档时,我发现他们在 "IPython 2.0+, local=True may fail if a url prefix is added (e.g. by setting NotebookApp.base_url)" 中也提到了这一点,所以这似乎不是一个孤立的问题,值得一个好的解决方案.
鉴于@matt 在下面的评论并更多地考虑内核与前端拆分,因此无法从内核访问 NotebookApp 配置是有道理的。确实是生成的 JS 代码需要知道 base_url 是什么,所以如果有人能指出我可以在 Notebook JS API 中访问它的位置,那应该可以解决它。
【问题讨论】:
-
你为什么要
base_url。你想达到什么目标,然后我们可以讨论从哪里得到它。这取决于你是做 JS 扩展、服务器扩展还是内核扩展。 -
@Matt 感谢您的评论。我为这个问题添加了更多细节。这确实在 JS 扩展中是必需的。我没有仔细考虑它,并试图在内核中用 Python 解决它,因为这是我更熟悉的。
-
添加了答案,还没有真正了解 mpld3 和 qgrid 是如何做事的,但我希望这会有所帮助。如果缺少东西,欢迎提供反馈。
标签: ipython ipython-notebook jupyter