如何在Jupyter Python Notebook中遵循DRY原理

克里斯蒂亚斯

Jupyter是一个笔记本,是一个Web应用程序,人们可以在其中编写文档并执行多种语言的代码。出于这个问题的目的,让我们只使用python。

我经常发现自己在许多jupyter文件中复制代码,大部分是在数据科学项目中的预测模型之间复制评估代码。我如何不在jupyter python笔记本中重复自己?

拉屎

用通用代码创建一个模块,并将其导入需要它的笔记本中。Jupyter可以将Python笔记本导出为Python模块。文件>下载为> Python(.py)。

将该文件放在内核路径上,然后可以导入它。

使用Python内核,您可以看到

import sys
sys.path

如果将模块放在任何这些目录中,则可以导入它。您还可以使用sys.path.append(...)(仅针对该会话)或通过更新操作系统中的相关环境变量(通常是PYTHONPATH来附加新的路径字符串


可以导入.ipynb,但它并不像首先转换它那样简单。IPython单元可以使用%-magics等扩展语法。IPython包含所有以编程方式加载.ipynb文件所需的工具(请参阅nbformat.read()IPython.core.interactiveshell.InteractiveShell),然后只需使用标准库导入挂钩即可。

这里涉及的内容太复杂了,但是Jupyter文档说明了如何执行此操作。


有没有办法只从另一个笔记本导入某些单元格?我似乎找不到。

是的,应该可以导入单个单元格,但是请注意,如果假定未导入的单元格已经运行,则该单元格可能无法正常工作。

链接文档中的相关代码段为

     for cell in nb.cells:
        if cell.cell_type == 'code':
            # transform the input to executable Python
            code = self.shell.input_transformer_manager.transform_cell(cell.source)
            # run the code in themodule
            exec(code, mod.__dict__)

请注意,这是如何使用循环依次运行每个代码类型的单元的。您可以在此处运行一个或多个特定单元,而不是所有单元。这样,导入的模块将只运行该代码。

棘手的部分可能是识别所需的单元格。显而易见的方法是计数,但是您也可以以某种方式标记单元格,例如在循环中,仅在cell.source以某个注释或某些内容开头的情况下才运行单元格

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Jupyter Notebook中使用来自外部Python文件的代码?

如何在python中给jupyter cell标准输入?

如何在Jupyter Notebook 5中逐行描述python 3.5代码

如何在我的jupyter笔记本中添加python3内核?

如何在气流中运行Jupyter Notebook

Python-如何在Jupyter Notebook中安装pyvttbl

如何在Jupyter Notebook Python 3.6.2中关闭行号

Python如何在Jupyter中与Javascript交换数据

如何在Python包内的Jupyter Notebook中显示.gif

如何在Tkinter Python中修复“ TCL错误”?在Jupyter Notebook上工作

如何通过Python在Jupyter Notebook中循环选择数据

如何在Jupyter Python Notebook中的gmap上显示文本?

如何在Jupyter Notebook中导入python .py文件

python如何在交互式解释器和jupyter Notebook中实习生字符串

输入并运行时没有括号的类对象如何在Python REPL或Jupyter Notebook中打印

我如何在jupyter中运行'python -m'命令

如何在Jupyter Notebook单元中刷新Python导入?

如何在Jupyter Notebook的一个单元格中显示两张图片?(matplotlib)(Python)

如何在 jupyter notebook 中使用 TensorFlow?我已经通过 python 3.5 pip 安装了 TensorFlow

如何使用 jupyter notebook 修复 python 中的“语法错误”?

如何使用 Jupyter Notebook 在 Python 中更慢地抓取网站?

如何在 AWS EMR 中将 Jupyter notebook 设置为 Python3 而不是 Python2.7

如何在 Anaconda 中的 Jupyter notebook 中使用 Python 连接 Cassandra?

如何在 Jupyter Notebook (Python) 上使用 Xpath 获取包含指定文本的元素?

如何在 vscode jupyter notebook 中使用创建的 python 虚拟环境

如何在 python jupyter notebook 中运行 bigquery SQL 查询

如何在 jupyter notebook 上調用帶有解析參數的 python 腳本

如何在jupyter notebook python上制作散点图

如何在 Jupyter Notebook 中安装 Plotly