(对于 Jupyter 4+) 在最新的 Jupyter 版本中,他们有 documented 进行配置更改的地方。所以基本上,在 Jupyter 更新中,他们删除了配置文件的概念,因此 custom.js 文件位置现在是 .jupyter/custom/custom.js,具体取决于您的 .jupyter 文件夹的位置。因此,如果您没有custom 文件夹或custom.js 文件,只需创建它们,然后将这些行放入新创建的文件中:
define([
'base/js/namespace',
'base/js/events'
],
function(IPython, events) {
events.on("app_initialized.NotebookApp",
function () {
require("notebook/js/cell").Cell.options_default.cm_config.lineNumbers = true;
}
);
}
);
以上内容用于同时将行号设置为所有单元格类型。如果您这样做,代码、Markdown 和原始单元格都将获得行号。如果您希望行号仅适用于代码单元,有一种更简单的方法。选择一个代码单元,打开 Chrome/Firefox JavaScript 控制台,输入以下行:
var cell = Jupyter.notebook.get_selected_cell();
var config = cell.config;
var patch = {
CodeCell:{
cm_config:{lineNumbers:true}
}
}
config.update(patch)
然后重新加载页面。这些更改仍然存在,因为 Jupyter 将在 .jupyter/nbconfig 中创建一个 json 配置文件来存储它们。此方法来自文档的this page,因此请阅读文档以了解您可以进行的更多配置更改。
(旧答案)
在最新版本的 IPython Notebook (v3.1.0) 中,转到~/.ipython/<profile_name>/static/custom/custom.js 并添加以下行:
define([
'base/js/namespace',
'base/js/events'
],
function(IPython, events) {
events.on("app_initialized.NotebookApp",
function () {
IPython.Cell.options_default.cm_config.lineNumbers = true;
}
);
}
);
IPython.Cell.options_default.cm_config.lineNumbers = true; 行单独不起作用,因为它需要在尝试此操作之前加载 IPython.Cell 对象。单独添加这一行将导致控制台中出现未定义的错误。如图所示,您需要将其封装在事件处理程序中。
@William-Denman 的代码可能适用于早期版本,但现在您需要这样做。
编辑:对于最新版本的 IPython/Jupyter(IPython 4.0.0、Jupyter 4.0),中间的代码行必须更改为 require("notebook/js/cell").Cell.options_default.cm_config.lineNumbers = true; .6)。旧的 IPython.Cell 对象也可以使用,但您的 Web 控制台会抛出一个弃用警告,因此您可以预期未来的版本将不支持旧行。
另外,在我使用WinPython portable 运行的最新IPython/Jupyter 中,我在配置文件文件夹中找不到custom.js 文件。我在WinPython-64bit-2.7.10.3\python-2.7.10.amd64\Lib\site-packages\notebook\static\custom 中找到了它(经过很多 搜索)。我不知道这是 WinPython 的事情还是 Jupyter 的事情。如果有人正常安装了 Jupyter(最新版本)(使用 pip 或其他)并且仍然可以在配置文件文件夹中找到 custom.js 文件,请发表评论。