我在名为 "functions.ipynb" 的文件中定义了一个 "hello world" 函数。现在,我想通过使用 "import functions" 在另一个文件中导入函数。我确定它们在同一个文件夹中。然而,它仍然显示 "ImportError: No module named functions"。顺便说一下,我正在使用jupyter笔记本。非常感谢!
我在名为 "functions.ipynb" 的文件中定义了一个 "hello world" 函数。现在,我想通过使用 "import functions" 在另一个文件中导入函数。我确定它们在同一个文件夹中。然而,它仍然显示 "ImportError: No module named functions"。顺便说一下,我正在使用jupyter笔记本。非常感谢!
您需要使用ipynb包/模块导入器。 您需要安装它:pip install ipynb
。
创建一个名为my_functions.ipynb
的笔记本。 向其中添加一个简单的函数。
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
然后,创建第二个IPython Notebook并使用以下代码导入此函数:
from ipynb.fs.full.my_functions import factorial
然后您可以像在同一个IPython笔记本中一样使用它:
testing = factorial(5)
请参阅文档以获取更多详细信息。
my_functions
包含了一些你不想执行的代码,但只需要文件中的某个函数怎么办? - Milosimport ipynb.fs.defs.my_functions
导入我的函数。https://github.com/ipython/ipynb - racoon_lord对于我的情况,ipnyb导入不起作用,不知何故。我必须使用Jupyter笔记本魔术单元格来导入我的函数。
%run MyOtherNotebook.ipynb #this is were my function was stored
function(df) #then simply run the function
import functions
导入该文件。现在,你可以使用 functions 文件中定义的任何函数,例如:functions.function_name
。例如,如果 add 是一个函数,functions.add(5,3)
导入后将起作用。
@David Rinck的回答解决了问题,但我建议您添加样板__name__ == "__main__"
来保护您不想意外调用的脚本。它与通常的Python文件相同。
如果一个 .ipynb 文件 a.ipynb 被另一个 b.ipynb 导入
from ipynb.fs.full.a import factorial
在a.ipynb文件中,__name__
将会是ipynb.fs.full.a
,而不是"__main__"
。