从另一个.ipynb文件导入一个函数

Cha*_*ong 14 python import ipython jupyter-notebook

我在一个名为'functions.ipynb'的文件中定义了一个hello world函数.现在,我想使用"导入函数"在另一个文件中导入函数.我确信它们在同一个文件夹中.但是,它仍然显示"ImportError:没有模块命名函数".顺便说一下,我正在使用jupyter笔记本.非常感谢!

Dav*_*nck 23

您将要使用ipynb软件包/模块导入程序.你需要安装它:pip install ipynb.

创建一个名为"MyFunctions"的笔记本.添加一个简单的功能.

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
Run Code Online (Sandbox Code Playgroud)

然后,创建第二个Ipython Notebook并导入此函数:

from ipynb.fs.full.my_functions import factorial
Run Code Online (Sandbox Code Playgroud)

然后你可以像使用它在同一个Ipython Notebook中一样使用它:

testing = factorial(5)
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档.

  • @Milos 然后使用 `import ipynb.fs.defs.my_functions` 如此处记录的 https://github.com/ipython/ipynb (4认同)
  • 如果“my_functions”包含一些我不想执行的代码,但只想从文件中获取一个函数怎么办? (3认同)

Ged*_*nas 9

对于我的用例, ipnyb 导入由于某种原因不起作用。我必须使用 Jupyter Notebook magic cell 来导入我的函数:

%run MyOtherNotebook.ipynb     #this is were my function was stored
function(df)                    #then simply run the function
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以将functions.ipynb另存为functions.py,并可以将该文件导入为import functions. 现在您可以使用函数文件中定义的任何函数,例如functions.function_name ,如果 add 是一个函数,

functions.add(5,3)
Run Code Online (Sandbox Code Playgroud)

导入后就可以工作了。