如何从Jupyter笔记本运行现有功能

时间:2017-08-22 02:39:53

标签: python jupyter-notebook jupyter

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

的函数f
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-controller="ctrl" ng-app="plunker">
    <table>
      <thead>
        <tr>
          <th>id</th>
          <th>name</th>
          <th>edit</th>
        </tr>
      </thead>
      <tbody>
        <tr ng-repeat="x in items">
          <td ng-model="x.id">{{x.id}}</td>
          <td>{{x.name}}</td>
          <td><button ng-click="edit(x)">edit</button></td>
        </tr>
      </tbody>
    </table>
  </body>

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

 def f(x):
    return x**2

2 个答案:

答案 0 :(得分:4)

尝试load魔法;

%load f.py

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

from f import f

是另一种选择。

如果在您尝试调用您的函数之前,通过将此块作为单元格运行,那么其中任何一个都不能尝试将您的笔记本的目录添加到系统路径中;

import os
import sys
nb_dir = os.path.split(os.getcwd())[0]
if nb_dir not in sys.path:
    sys.path.append(nb_dir)

答案 1 :(得分:1)

%run f.py

load的魔力只是将整个文件复制到一个单元格中,这不是我所需要的。导入对我也不起作用。抛出了一些奇怪的错误。所以我最终使用了run魔术。