现在随着越来越多的ipython笔记本文件(* .ipynb)的出现,每次我想偷看一些笔记本时都会非常令人不安,我必须为它打开服务器,并且不能以只读模式进行(由于自动保存,如果不是在只读模式下,我可能会在读取文件时意外更改文件)。
我希望这样的事情:ipython notebook mynb.ipynb --read-only
可行,但遗憾的是它没有(尽管它仍然创建了一个我不想在只读视图中使用的服务器)。我真正想要的是打开像html文件一样的ipynb文件进行阅读,目前看来缺少ipynb文件的视图,现在笔记本更像是一个黑盒子或近二进制文件。
(PS,我正在使用Linux / Ubuntu。)
答案 0 :(得分:11)
答案 1 :(得分:10)
试试这个ipynb Viewer。这使ipython笔记本成为静态网页。 ypu也可以使用
将ipyhton笔记本转换为其他格式ipython nbconvert --to FORMAT notebook.ipynb.
参考Convert Ipython notebook to other formats。使用此功能,您可以将ipython笔记本转换为HTML。
答案 2 :(得分:9)
您可能还想尝试 nteract 应用(https://nteract.io)
nteract 是一个桌面应用程序,允许您开发包含散文,可执行代码(几乎所有语言!)和图像的丰富文档。
Here您可以找到有关该应用的详细评论。
它本身是完全免费且非常方便的工具,我经常使用它来查看其他ipynb文件(如果需要)以及快速开发。
答案 3 :(得分:2)
我所建议的最好的方法-仍然有点冗长-使用 ProcessorSupplier<Integer, ValueType> processorSupplier = new ProcessorSupplier<Integer, ValueType>() {
public Processor<Integer, ValueType> get() {
return new Processor<Integer, ValueType>() {
private ProcessorContext context;
private KeyValueStore<Integer, Integer> stateStore;
public void init(ProcessorContext context) {
this.context = context;
stateStore = (KeyValueStore) context.getStateStore("MyStore");
this.context.schedule(Duration.ofMillis(5000), PunctuationType.WALL_CLOCK_TIME, (timestamp) -> {
Set<Integer> ids = new HashSet<>();
try (KeyValueIterator<Integer, Integer> iter = this.stateStore.all()) {
while (iter.hasNext()) {
KeyValue<Integer, Integer> entry = iter.next();
ids.add(entry.key);
}
}
List<Document> documentList = createDocuments(dataRetriever, ids);
documentList.stream().forEach(document -> context.forward(document.getId(), document));
ids.stream().forEach(id -> stateStore.delete(id));
this.context.commit();
});
}
@Override
public void process(Integer key, ValueType value) {
Long id = key.getId();
stateStore.put(id, id);
}
@Override
public void close() {
}
};
}
};
创建文件的HTML版本,然后在浏览器中打开它。以下是执行此操作的命令(假设您的浏览器已设置为处理.html文件的默认程序)。只需将nbconvert
替换为您的真实笔记本名称即可。
yournotebook.ipynb
苹果系统
jupyter nbconvert --to html yournotebook.ipynb --output /tmp/notebook.html &&
xdg-open /tmp/notebook.html
视窗
jupyter nbconvert --to html yournotebook.ipynb --output /tmp/notebook.html &&
open /tmp/notebook.html
(请注意,如果要批量执行此操作,可能是在脚本中循环执行,则可能需要修改上面的命令,以使HTML文件不总是使用相同的文件名,以避免出现竞争情况在浏览器真正开始阅读之前,HTML文件已被覆盖的位置。)
答案 4 :(得分:0)
Intellij IDEA(也可以作为免费的开放源代码社区版本提供)也可以呈现ipynb
文件。实际上,它还允许创作笔记本,因此不仅仅是查看器。
可以通过文件类型关联或通过命令行启动器(例如idea foo.pynb
)使用它。
答案 5 :(得分:0)
我为此使用Github Gist。您将需要一个Github帐户。
如果在其中为内容复制/粘贴指定* .ipynb文件扩展名,它将检测到该文件并将其格式化为html视图。如果有趣的话,您甚至可以使用链接与某人共享它。除了拥有浏览器之外,不需要其他工具。
虽然我发现格式上有一些小问题,大部分是与输出图有关的,但这种情况很少见。
此处为随机示例:https://gist.github.com/Clockware/aa7e01722579841d5888ca83385a5f1d
答案 6 :(得分:0)
我能够在可视代码中以html格式读取.ipynb文件。您将需要一个python插件来自动检测视觉代码。在那之后,很简单。
答案 7 :(得分:0)
查看 jupyter 笔记本最方便的方法是使用 nb-viewer,使用此实用程序,您只需双击即可打开笔记本(以只读模式)。