安福网站建设,网站建设与管理方向,生活中优秀的产品设计,天津做美缝的网站总结
使用 %run 魔法命令将 Notebook 转换为py文件使用 nbimporter 库手动复制代码优点notebook最前面加上即可最基本方法就跟导入py文件一样#xff0c;不会被执行一遍快缺点所有的代码都会执行一遍修改原文件就要重新转换#xff0c;且 从自定义的 .py 文件中导入函数时不会被执行一遍快缺点所有的代码都会执行一遍修改原文件就要重新转换且 从自定义的 .py 文件中导入函数时Python 会执行该文件中的顶层代码。ipynb文件中有不可执行的文字就会出错麻烦最佳√
方法 1使用 %run 魔法命令
Jupyter Notebook 提供了 %run 魔法命令允许你运行另一个 Notebook其效果类似于 Python 脚本。运行后你可以访问那个 Notebook 中定义的变量、函数等。
在目标 Notebook 中确保你已经定义了需要的函数例如
# 在 some_other_notebook.ipynb 中
def my_function():print(Hello from another notebook!)然后在你的当前 Notebook 中使用 %run 来执行另一个 Notebook
# 在你的当前 Notebook 中
%run ./path_to/some_other_notebook.ipynb# 现在可以调用函数
my_function() # 这将打印 Hello from another notebook!
确保路径是相对于当前 Notebook 的路径或者是一个绝对路径。
方法 2将 Notebook 转换为模块
另一种方法是将你想要调用的 Notebook 转换为一个 Python 模块.py 文件然后像导入普通 Python 模块那样导入它。
首先将 Notebook 导出为 Python 脚本。这通常可以在 Jupyter Notebook 的 “File” “Download as” “Python (.py)” 中完成。
将导出的 .py 文件放在当前 Notebook 可以访问的位置或添加该路径到 sys.path。
导入模块并调用函数
# 导入模块
import some_other_notebook_module # 确保 some_other_notebook_module.py 在可访问的路径上# 调用函数
some_other_notebook_module.my_function()两种方法各有利弊使用 %run 更适合临时或交互式的工作而将 Notebook 转换为模块则更适合长期和重复使用的代码。选择哪种方法取决于你的具体需求和工作流程。
注意
从自定义的 .py 文件中导入函数时Python 会执行该文件中的顶层代码。这意味着在模块级别不在任何函数或类定义内部的所有语句都会在导入时运行。这包括函数和类的定义、变量赋值以及任何在顶层执行的其他语句。
防止代码在导入时运行
如果你想防止某些代码在模块被导入时执行可以将这部分代码放入以下检查中
if __name__ __main__:# 这里的代码只会在直接运行此脚本时执行而不会在导入时执行这种方式常用于模块的测试代码或当脚本既可以被导入又可以作为主程序运行时。
方法 3使用 nbimporter
nbimporter 是一个 Python 库允许直接从其他 Jupyter Notebook 中导入 Python 代码。首先您需要安装 nbimporter
pip install nbimporter然后您可以在您的 Notebook 中导入另一个 Notebook就像导入一个常规的 Python 模块一样
import nbimporter
from some_other_notebook import my_functionmy_function()在这个示例中some_other_notebook 是您要导入的 Notebook 的文件名不包括 .ipynb 扩展名my_function 是定义在该 Notebook 中的函数。
如何筛查是否有不可执行的文字
先利用jupyter notebook文件的download as 转为py然后
from py_name import *看下是否有导入错误
方法 4手动复制代码
对于较小的项目或临时工作最简单直接的方法可能就是手动复制所需的函数或代码段。这种方法虽然不够优雅但对于快速实验和原型设计来说是有效的。