9

我目前使用 Wordpress(但托管在 siteground)运行一个个人网站,该网站是一组工程学习指南。我想使这些学习指南具有交互性(即基于滑块刷新图形,进行基本计算以指示设计是否有效,所以我需要 numpy)。一位朋友建议我为此目的使用 Jupyter 笔记本,因为您既可以渲染 LaTeX(我目前正在将 Mathjax 与 Wordpress 一起使用),也可以使用 Bokeh 或 Plotly 获得我想要的交互式图形类型。

虽然我看到了在特定服务器上共享笔记本的教程,但我所追求的是其他人能够在他们的浏览器中运行我的笔记本(只读),笔记本是私人托管的。

我仍然不确定 Jupyter 是否是实现我想要的正确途径,所以我愿意接受其他建议(有人也建议使用 Julia,但我看到的例子较少)。

4

3 回答 3

5

我同意你朋友的观点,即Jupyter Notebooks是一种很好的方法。虽然这绝不是完成您所追求的唯一方法,但我很难想出一个不需要大量工作来设置的直接替代方案。

我可以想到三种适合您需求的使用Jupyter Notebooks的主要方法:

1. Azure 笔记本

微软有一项名为Azure Notebooks的新服务,它(目前)完全免费。

Azure Notebooks拥有Jupyter Notebooks的完整功能,除了 Python,用户还可以使用RF#对单元格进行编程。至于该服务的典型用法,这是他们常见问题解答中的一个片段:

Jupyter(前身为 IPython),是一个基于类固醇的多语言 REPL。这是一项免费服务,提供 Jupyter 笔记本以及 R、Python 和 F# 的支持包作为服务。这意味着您只需登录即可开始使用,因为不需要安装/设置。典型用途包括学校/指导、提供网络研讨会、学习语言、分享想法等。该服务由 Python 团队@Microsoft 提供,该团队是 Data Group 的一部分。

2.nbviewer

Jupyter主站点的顶部横幅包含一个指向名为nbviewer的应用程序的链接。

显然,您可以在其他地方将 markdown / Jupyter 语法创建为离散页面,将页面的 URL 输入nbviewer,它会在结果中为您呈现。如果我要使用它,我会;

  • 为我的Jupyter语法创建一个独立的 WordPress 页面,然后将其输入nbviewer;或者,更有可能
  • 使用 GitHub 托管我的Jupyter Notebook页面(主要用于后代和版本控制,通过 Gist 选项),并使用原始文本链接作为源来馈送到nbviewer

3. 托管您自己的解决方案

如果您在技术上足够精明,我会推荐这种方法而不是nbviewer

当您在自己的计算机上启动 Jupyter Notebooks 时,您可以通过浏览器使用默认 URL http://localhost:8888访问它。这意味着必须存在某种机制将该端口公开给外部用户,并允许他们使用完全相同的界面访问您的笔记本电脑。这样做的两种方法:

  1. 使用 Jupyter Notebooks公共服务器
  2. 远程访问您的普通 Jupyter Notebook

希望有帮助!我很想知道这些选项中的任何一个是否适合您。

于 2018-07-06T22:56:47.967 回答
1

Iodide 项目(以及随后的Pyodide 是两个旨在实现这一点的项目。它们仍在开发中,但可能值得研究。

于 2019-01-11T14:21:36.693 回答
0

您可以尝试使用Mercury框架。它允许您将笔记本转换为 Web 应用程序(带有交互式小部件)。您需要将 YAML 标头添加到笔记本的开头。将基于 YAML 生成小部件。您的用户可以更改小部件值并单击Run按钮以使用新输入执行笔记本。您可以决定是否为您的用户显示或隐藏代码。您可以在单个服务器上使用 Mercury 为多个笔记本提供服务。它基于 Django,因此可以轻松部署在任何服务器/云上。

示例笔记本:

示例笔记本

为上述笔记本生成的应用程序:

水银应用

Mercury 中的应用程序/笔记本库的屏幕截图:

Mercury 中的应用程序库

于 2022-02-08T16:47:37.330 回答