2024-06-09 11:01:42 发布
网友
我希望IPython笔记本代码单元格的默认显示包括行号。
我从Showing line numbers in IPython/Jupyter Notebooks那里学到,我可以用ctrl-M L来切换它,这很好,但需要手动操作。为了在默认情况下包含行号,我需要在ipython_notebook_config.py文件中添加一些内容。除非我漏掉了什么,否则文档中没有解释如何做到这一点。
我发现在~/.jupyter/nbconfig/notebook.json内部需要添加以下行:
~/.jupyter/nbconfig/notebook.json
"CodeCell": { "cm_config": { "lineNumbers": true }
在那个物体里面。最后一个物体看起来像:
{ "CodeCell": { "cm_config": { "lineNumbers": true } } }
在您的custom.js文件中(位置取决于您的操作系统)
custom.js
IPython.Cell.options_default.cm_config.lineNumbers = true;
如果找不到custom.js,只需搜索它,但通常它会在profile_default文件夹中。如果不存在,请在$(ipython locate profile)/static/custom/custom.js处创建该文件
$(ipython locate profile)/static/custom/custom.js
如果由于任何原因而不起作用,您始终可以用相同的方式编辑site-packages/IPython/html/static/custom/中的custom.js文件。
site-packages/IPython/html/static/custom/
(对于Jupyter 4+)在最新的Jupyter版本中,它们有documented进行配置更改的位置。基本上,在Jupyter更新中,他们删除了profiles的概念,因此custom.js文件位置现在是.jupyter/custom/custom.js,这取决于.jupyter文件夹的位置。因此,如果没有custom文件夹或custom.js文件,只需创建它们,然后将这些行放入新创建的文件中:
.jupyter/custom/custom.js
.jupyter
custom
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; } ); } );
上面是用来同时将行号设置为所有单元格类型。如果这样做,代码、标记和原始单元格都将得到行号。如果只希望代码单元格的行号,有一种更简单的方法。选择一个代码单元,打开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,因此请阅读文档以了解可以进行的更多配置更改。
.jupyter/nbconfig
(旧答案)
在最新版本的IPython笔记本(v3.1.0)中,转到~/.ipython/<profile_name>/static/custom/custom.js并添加以下行:
~/.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.6)。旧的IPython.Cell对象也可以工作,但是您的web控制台将抛出一个弃用警告,因此您可以预期在将来的版本中将不支持旧的行。
IPython.Cell
另外,在最新的IPython/Jupyter中,我使用WinPython portable运行它,在profile文件夹中找不到custom.js文件。我在WinPython-64bit-2.7.10.3\python-2.7.10.amd64\Lib\site-packages\notebook\static\custom中发现了它(在多次搜索之后)。我不知道这是WinPython还是Jupyter。如果有人正常安装了Jupyter(最新版本)(使用pip或其他方式),并且仍然可以在profile文件夹中找到custom.js文件,请发表评论。
WinPython-64bit-2.7.10.3\python-2.7.10.amd64\Lib\site-packages\notebook\static\custom
上面说的在2018年对我不起作用
我发现在
~/.jupyter/nbconfig/notebook.json
内部需要添加以下行:在那个物体里面。最后一个物体看起来像:
在您的
custom.js
文件中(位置取决于您的操作系统)IPython.Cell.options_default.cm_config.lineNumbers = true;
如果找不到custom.js,只需搜索它,但通常它会在profile_default文件夹中。如果不存在,请在
$(ipython locate profile)/static/custom/custom.js
处创建该文件如果由于任何原因而不起作用,您始终可以用相同的方式编辑
site-packages/IPython/html/static/custom/
中的custom.js
文件。(对于Jupyter 4+)在最新的Jupyter版本中,它们有documented进行配置更改的位置。基本上,在Jupyter更新中,他们删除了profiles的概念,因此
custom.js
文件位置现在是.jupyter/custom/custom.js
,这取决于.jupyter
文件夹的位置。因此,如果没有custom
文件夹或custom.js
文件,只需创建它们,然后将这些行放入新创建的文件中:上面是用来同时将行号设置为所有单元格类型。如果这样做,代码、标记和原始单元格都将得到行号。如果只希望代码单元格的行号,有一种更简单的方法。选择一个代码单元,打开Chrome/Firefox JavaScript控制台,键入以下行:
然后重新加载页面。这些更改将持续,因为Jupyter将在
.jupyter/nbconfig
中创建一个json配置文件来存储它们。此方法来自文档的this page,因此请阅读文档以了解可以进行的更多配置更改。(旧答案)
在最新版本的IPython笔记本(v3.1.0)中,转到
~/.ipython/<profile_name>/static/custom/custom.js
并添加以下行:单独的
IPython.Cell.options_default.cm_config.lineNumbers = true;
行将无法工作,因为它需要在尝试此操作之前加载IPython.Cell对象。单独添加这一行将导致控制台中出现未定义的错误。您需要将其封装在事件处理程序中,如图所示。@William Denman的代码可能适用于早期版本,但现在您需要这样做。
编辑:中间的代码行必须更改为最新版本的IPython/Jupyter(IPython 4.0.0,Jupyter 4.0.6)。旧的IPython.Cell
对象也可以工作,但是您的web控制台将抛出一个弃用警告,因此您可以预期在将来的版本中将不支持旧的行。另外,在最新的IPython/Jupyter中,我使用WinPython portable运行它,在profile文件夹中找不到
custom.js
文件。我在WinPython-64bit-2.7.10.3\python-2.7.10.amd64\Lib\site-packages\notebook\static\custom
中发现了它(在多次搜索之后)。我不知道这是WinPython还是Jupyter。如果有人正常安装了Jupyter(最新版本)(使用pip或其他方式),并且仍然可以在profile文件夹中找到custom.js
文件,请发表评论。相关问题 更多 >
编程相关推荐