错误:找不到行魔术函数`%matplotlib`。

25

我刚在Mac上安装了IPython(MacOS 10.7.5),按照http://ipython.org/install.html上anaconda的说明进行操作,没有明显的错误。现在我想按照示例笔记本进行学习。在“第一部分-运行代码”笔记本中,一切都像应该的那样工作,直到我遇到

%matplotlib inline

接着我收到错误信息

错误:未找到行魔术函数%matplotlib

在那之后,一切都正常工作了,唯独绘图不会显示在页面内,而是弹出一个新窗口。

9个回答

20

尝试:

import IPython
print(IPython.sys_info())

它是否报告你在使用'ipython_version' 1.0+? 你可能会使用一个较旧的IPython版本,其中没有%matplotlib魔法指令。


1
由于@LeonAvery提到他是新手,值得一提的是Import应该改为import - Greg
谢谢,Greg - 我犯了那个错误,但是我自己找到了解决方法 :-)这是版本0.13.2。所以我猜anaconda还没有1.0.0。我知道在哪里可以下载它,但我不确定如何安装它。我只需要解压缩它并执行 'cd <folder>; python setup.py' 吗?conda会对我已安装的内容感到困惑吗? - Leon Avery
3
在Python3中,考虑使用print(IPython.sys_info()) - Simon Righley
5
我正在使用 ipython 版本为 7.0.1 的 Jupyter Notebook,但出现了相同的错误。 - Asif Khan
由于某种原因,我不得不发出pip3 install --upgrade ipython命令,因为安装的版本是5.5。 - Wiktor Stribiżew

6
如果您拥有Anaconda,只需在命令行中执行 conda update ipython 即可。无需卸载、easy_install和其他操作。

5

如果您通过shell运行笔记本,请尝试使用以下命令:

ipython notebook --pylab=inline

3
也许您的代码写错了:
%matplotlib.inline 正确的写法是:
%matplotlib inline

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

1
如果您通过shell运行笔记本,请尝试以下命令:
ipython notebook --pylab=inline 

它对我有效。


1

我在Windows上遇到了这个问题,但我认为解决方法是一样的:

  1. 卸载旧版IPython。命令为conda remove ipython
  2. 如果没有安装easy_install,请获取它。按照说明为您的系统安装easy_install
  3. 使用easy_install重新安装最新的IPython。命令为easy_install ipython[all],就像网站上显示的那样。

通过卸载Conda默认的IPython,应该会加载IPython 1.0.0。您可以通过运行IPython或IPython Notebook并运行命令%lsmagic来确认。如果matplotlib在列表中,则表示您已经完成了。


你应该提供链接给OP获取easy_install,而不仅仅告诉他要搜索什么。 - sodd

0

确保使用正确的ipython安装版本

在我的情况下,我有系统范围内的Python安装用于应用程序开发,除此之外还有用于数据分析的Anaconda(与ipython笔记本一起使用)。

启动ipython笔记本时,我应该正确设置PATH,以便使用anaconda版本的ipython

如果忘记设置PATH,则会使用系统范围内安装的无法很好地运行笔记本的ipython,从而导致像OP中所述的关于%matplotlib inline的投诉。

当我正确设置PATH并使用Anaconda版本的Python和ipython时,一切都很顺利。


0
我在Windows上遇到了类似的问题。确保您已将Conda和Python添加到路径中。您可以在命令提示符下运行以下命令来检查:

jupyter notebook

如果无法识别,则转到Anaconda提示符并键入:

where conda where python

请参考图像以获取要包含的路径 [1]: https://istack.dev59.com/QeA5d.webp

将它们添加到路径中,您就可以顺利运行了。


-1

与其使用内联命令,我只需在绘图后添加以下代码:matplotlib.pyplot.show()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接