NameError:未定义名称“get_ipython”

时间:2015-09-12 12:25:28

标签: python ipython caffe pycaffe

我正在使用Caffe框架并使用PyCaffe接口。我正在使用从转换IPython Notebook 00-classification.ipynb 获得的Python脚本,用于通过训练有素的ImageNet模型测试分类。但是脚本中的任何 get_ipython()语句都会出现以下错误:

$ python python/my_test_imagenet.py 
Traceback (most recent call last):
  File "python/my_test_imagenet.py", line 23, in <module>
    get_ipython().magic(u'matplotlib inline')

在脚本中,我正在导入以下内容:

import numpy as np
import matplotlib.pyplot as plt

get_ipython().magic(u'matplotlib inline')

# Make sure that caffe is on the python path:
caffe_root = '/path/to/caffe/'
import sys
sys.path.insert(0, caffe_root + 'python')

import caffe

plt.rcParams['figure.figsize'] = (10, 10)
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'

import os

# ... Rest of the code...

有人可以帮我解决这个错误吗?

3 个答案:

答案 0 :(得分:30)

您必须使用ipython运行脚本:

$ ipython python/my_test_imagenet.py

然后get_ipython已经在全球范围内。

注意:在普通shell from IPython import get_ipython中通过python导入它将无效,因为您确实需要ipython运行。

答案 1 :(得分:8)

如果您打算运行转换后的.py文件笔记本,那么您应该只注释get_ipython()个语句。 matlibplot输出无法在控制台中显示,因此您可能需要做一些工作。理想情况下,iPython不应该生成这些语句。您可以使用以下显示图表:

plt.show(block=True)

答案 2 :(得分:2)

get_ipython仅在导入IPython模块(如果您运行ipython shell(或Jupyter笔记本)时隐式发生)的情况下可用。

否则,导入将失败,但是您仍然可以使用以下方式明确导入:

from IPython import get_ipython