NameError:未定义名称"get_ipython"

Ada*_*han 31 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')
Run Code Online (Sandbox Code Playgroud)

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

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...
Run Code Online (Sandbox Code Playgroud)

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

bee*_*ezz 38

你必须用ipython运行你的脚本:

$ ipython python/my_test_imagenet.py
Run Code Online (Sandbox Code Playgroud)

那么get_ipython将在全球范围内.

注意:通过from IPython import get_ipython普通shell 导入它将python无法正常ipython运行.

  • @AdarshChauhan使用'matplotlib auto'而不是'matplotlib inline'. (5认同)
  • 我尝试了上面的方法,但它给出以下错误:“ UsageError:无效的GUI请求u'inline',有效的是:pyglet,osx,qt5,qt,glut,gtk,gtk3,tk,wx”。 (3认同)
  • 这是来自“jupyter nbconvert”的输出...为什么它会创建一个无法运行的文件?似乎违背了该命令的目的。此外,如果确实打算使用“ipython”运行,为什么输出以“#!/bin/env python”开头? (3认同)

Shi*_*hah 12

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

plt.show(block=True)
Run Code Online (Sandbox Code Playgroud)


Vin*_*ooo 10

get_ipython仅当运行 ipython shell(或 Jupyter Notebook)时隐式导入 IPython 模块时才可用。

如果没有,导入将失败,但您仍然可以使用以下命令显式导入它:

from IPython import get_ipython
Run Code Online (Sandbox Code Playgroud)