首页 > 解决方案 > 不同笔记本中的 Jupyter 类?

问题描述

在我刚刚使用 PyCharm 之前,我目前被迫在一个项目中使用 jupyter notebook。所以我创建了一个项目并想向它添加一些类。我应该将它们全部写在一个主笔记本上还是为每个班级创建不同的笔记本?据我了解,jupyter 不是为一个项目使用多个笔记本而设计的(但我认为有一些选项),但是如果我想将我的一些类更通用地用于其他项目,那么没有它是没有意义的单独的笔记本对吗?

对不起,也许我对 jupyter 有一个基本的误解,但我还不知道,什么是最好的方法。

标签: pythonclassoopjupyter-notebookjupyter

解决方案


Jupyter 很乐意让您在其他笔记本中使用多个库。您可以在此处找到文档。
但是,如果您想将项目移出命令行可执行文件,您可能需要考虑将笔记本导出为 .py 文件,然后将它们作为标准 python 库导入。Jupyter 对此有一个nbconvert方法。

我经常这样做,最后编写了一个小脚本,添加适当的 hashbang 行并删除任何 Jupyter“魔术”命令。你可以在github上找到它。

用法:./nbconvert myNotebook.ipynb

还有一些出色的 Jupyter 魔术命令可以让使用库变得更加容易。

# cause chagnged modules to be reloaded at execution
# add this to any notebook that sources an external .py file
%load_ext autoreload
%autoreload 2

我也觉得这很有用:

# set %magic alias to convert the current notebook into a .py file
%alias nbconvert ~/devtools/nbconvert thisNotebook.ipynb

用法:

%nbconvert
[NbConvertApp] Converting notebook searchTools.ipynb to python

推荐阅读