特别是我想知道代码运行的笔记本服务器的base_url
。
在IPython Notebooks 2.x版本中,我曾经这样做:
config = get_ipython().config
print config['NotebookApp']['base_url']
然而,在IPython Notebook 3.x / Jupyter Notebooks中,这种方法不再适用。
编辑:我想进一步说明我的目标。我在同一主机上的不同Docker容器中运行各种IPython服务器,通过不同的base_url访问它们。我想使用quantopian/qgrid包在Notebook中显示Pandas数据帧。最初,qgrid无法处理自定义base_url前缀以提供本地Javascript依赖项的服务,但上面的代码允许我在IPython 2中找到base_url,并将相关的base_url注入Javascript模板。
我也想在Notebook中使用mpld3库,在查看他们的文档时,我发现他们还提到了这点"IPython 2.0+,如果添加url前缀(例如通过设置NotebookApp.base_url),local=True可能会失败。",所以这似乎不是一个孤立的问题,找到一个好的解决方案很值得一试。
根据@matt下面的评论和更多关于内核与前端的分离的思考,NotebookApp配置无法从内核访问是有道理的。实际上,生成的JS代码需要知道
base_url
信息,因此,如果有人能指出我在Notebook JS API中可以访问它的位置,那么这个问题就可以解决。
base_url
?你想要实现什么目标,然后我们可以讨论在哪里获取它。这取决于你是做JS扩展、服务器扩展还是内核扩展。 - Matt