查看ipython笔记本的简单方法

A simple way to view ipython notebook

我真的是 IPython/Jupyter 笔记本的新手。我刚刚创建了一个笔记本 (.ipynb),我想在我的网页上分享它。具体来说,我想添加一个 link,当人们单击它时,它将打开一个新的 "webpage",他们可以在其中 "view" 我的代码和结果。

注意:我不能使用github,这对我来说是一个巨大的痛苦。

我试过 nbviewer (http://nbviewer.jupyter.org/)。它有几个选项,但只有其中一个 (url) 与 github/gist 无关。所以,为了让我的文件有一个 URL,我将它上传到 google 驱动器,并得到了一个 public link 的文件。另一方面,当我将 link 放入 nbviewer 时(作为 url 放入我的文件),它显示 "there is no file in this url"。另一方面,我知道 link 有效,因为当我把它放在浏览器上时,它会指示我下载 .ipynb 文件。

感谢您的帮助。

谢谢, J.

由于您已经创建了笔记本文件,因此可以轻松地将其转换为 html 文件。以这种格式,您可以轻松地分享它或将其放在网站上。所以根据提示:

jupyter nbconvert --to html --execute YOUR_FILE.ipynb --output OUTPUT.html

还有其他格式:markdown、html、pdf、ipynb等

Documentation here

共享笔记本的非GitHub 选项似乎有限。您仍然可以直接从 Google 的 colaboratory 分享 link。这将使您能够:

  • 上传您的文件
  • 使用各种权限共享link

任何 Google 用户都可以查看(并可选择编辑)您的笔记本。


另请参阅其他选项:

检查这个 Firefox 插件。 Python Notebook Viewer

它易于使用,不需要您打开 terminal/command 提示符,也可以离线使用。只需按照以下步骤操作即可。

  1. Firefox Addons 站点安装
  2. 将 .ipynb 文件拖放到 firefox 中。
  3. 或者你也可以从菜单->文件->打开文件打开笔记本

Chrome 版本:Jupyter Notebook Viewer

不是同一个开发人员,但在全球范围内以相同的方式工作。

如果您想在线共享您的 Juptyer / IPython 笔记本,请尝试使用 jovian.ml。这是一个共享 Jupyter notebooks 协作的平台,而且非常易于使用。

步骤 1: 安装 Jovian python 库

pip install jovian

第 2 步: 将库导入 Jupyter / IPython notebook

import jovian

第 3 步:通过 运行ning

将笔记本上传到您的 Jovian 帐户
jovian.commit()

在 Jupyter 笔记本中。这将捕获 Juptyer notebook(以及 运行 它所需的 Python 库),并将其上传到您的帐户,让您可以共享 link。这是一个例子:https://www.jovian.ml/aakashns/01-pytorch-basics

查看者还可以 运行 您的笔记本,只需单击一下即可在 Google Colab、BinderHub 和 Kaggle 等云平台上。

下面的代码是 Jupyter 笔记本的简单查看器。它可以用来快速预览 ipynb 文件。使用代码作为 python jnv.py a.ipynb,其中 'jnv.py' 是下面的代码。该代码也可用于文件管理器,如 Total Commander,如果将命令 python jnv.py 作为 ipynb 文件的查看器分配。

# jnv.py: A simple viewer of a Jupyter notebooks (ipynb-files).
# Works for nbformat version >= 4.
import tkinter as tk
import sys,json

f = open(sys.argv[1], 'r',  encoding="utf8")  # input.ipynb
jf = json.load(f)
f.close()

# Take text ('source') from 'markdown' and 'code' cells
out_txt = ''
for cell in jf["cells"]:
  if cell['cell_type'] == 'markdown':
    for el in cell['source']:
      out_txt = out_txt + el
  elif  cell['cell_type'] == 'code':
    for el in cell['source']:
      out_txt = out_txt + el

# Make a frame and display 'out_txt'. Press Esc to quit.
# See https://www.python-course.eu/tkinter_text_widget.php
root = tk.Tk()

S = tk.Scrollbar(root)
T = tk.Text(root, height=24, width=80)

def select_all(event=None):
  T.tag_add('sel', '1.0', 'end')
  #return "break"
def copy_sel(event=None):
  content = T.selection_get()
  print(content)
  root.clipboard_clear()
  root.clipboard_append(content)
def key(event):
  print(event)
  if event.keycode == 27:  # pressed Esc
    root.destroy()
  elif event.char == '\x01': # Ctrl-A; make sure you use this before cursor enters text!
    select_all()
  elif event.char == '\x03': # Ctrl-C; make sure you use this before cursor enters text!
    copy_sel()

S.pack(side=tk.RIGHT, fill=tk.Y)
T.pack(side=tk.LEFT, fill=tk.Y)
S.config(command=T.yview)
T.config(yscrollcommand=S.set)

T.insert(tk.END, out_txt)
root.bind("<Key>", key)
tk.mainloop()

Pycharm专业人士也可以查看Jupyter notebooks

如果您想分享您的 Python 笔记本以便其他人可以查看它,那么您可以尝试一个名为 Mercury 的 open-source 框架。 Mercury 将笔记本转换为网络应用程序。此外,您只需在笔记本的第一个原始单元格中插入 YAML 配置,即可为笔记本添加交互式小部件。

这是带有 YAML 配置的示例笔记本:

这是 Mercury 为笔记本生成的网络应用程序视图:

您可以将 Mercury 部署到任何服务器,因为它建立在 Django 框架之上。