如何从Jupyter Notebook运行现有功能

pyt*_*low 5 python jupyter jupyter-notebook

我正在使用Jupyter笔记本。在运行笔记本的同一文件夹中,我有一个函数f定义为

 def f(x):
    return x**2
Run Code Online (Sandbox Code Playgroud)

我已将此功能另存为f.py在同一文件夹中。现在,我想在正在运行的笔记本中调用此函数。我怎么做?如果该功能是在笔记本中键入的,我本来可以键入

f(4)
Run Code Online (Sandbox Code Playgroud)

Jam*_*per 7

尝试load魔术;

%load f.py
Run Code Online (Sandbox Code Playgroud)

它将自动加载文件的全部内容,以便您可以在单元格中对其进行编辑。

from f import f
Run Code Online (Sandbox Code Playgroud)

是另一种选择。

如果这些都不适合您,可以尝试在调用函数之前,通过将此块作为单元运行,将笔记本的目录添加到系统路径。

import os
import sys
nb_dir = os.path.split(os.getcwd())[0]
if nb_dir not in sys.path:
    sys.path.append(nb_dir)
Run Code Online (Sandbox Code Playgroud)


Nit*_*hin 7

%run f.py
Run Code Online (Sandbox Code Playgroud)

load魔术只是将整个文件复制到一个单元格中,这不是我需要的。进口也没有为我工作。抛出一些奇怪的错误。所以我最终使用了run魔法。

  • 我最终使用了这个选项,因为在修改后使用 import 加载了旧版本的 f.py 。 (2认同)