【问题标题】:jupyter notebook %matplotlib errorjupyter notebook %matplotlib 错误
【发布时间】:2016-05-13 07:47:10
【问题描述】:

我的系统是 Ubuntu 15.04 64bit。 我的python版本:

**:~$ python
Python 2.7.11 |Anaconda custom (64-bit)| (default, Dec  6 2015, 18:08:32) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2

我的 ipython 版本:

**:~$ ipython
Python 2.7.11 |Anaconda custom (64-bit)| (default, Dec  6 2015, 18:08:32) 
Type "copyright", "credits" or "license" for more information.
IPython 4.2.0 -- An enhanced Interactive Python.

我使用过conda install matplotlibconda install numpyconda install scipy。 版本和位置

# packages in environment at /home/hust/anaconda2:
numpy                     1.10.4                   py27_1  
matplotlib                1.5.1               np110py27_0  
scipy                     0.17.0              np110py27_3

在 ipython 中,

In[1] %matplotlib
Using matplotlib backend: Qt4Agg
In[2] from pylab import*

没关系。

为了在 jupyter notebook 中新建一个 python2,我使用了在 Kernels for Python 2 中找到的这些命令

conda create -n ipykernel_py2 python=2 ipykernel
source activate ipykernel_py2    
python -m ipykernel install --user

现在在终端中输入jupyter notebook,然后新建一个python2。我尝试使用%matplotlib

In[1]: %matplotlib
ImportError                         Traceback (most recent call last)
<ipython-input-2-f64cd8484500> in <module>()
----> 1 get_ipython().magic(u'matplotlib')

/home/hust/.local/lib/python2.7/site-packages/IPython       /core/interactiveshell.pyc in magic(self, arg_s)
2161         magic_name, _, magic_arg_s = arg_s.partition(' ')
2162         magic_name = magic_name.lstrip(prefilter.ESC_MAGIC)
-> 2163      return self.run_line_magic(magic_name, magic_arg_s)
2164 
2165      #-------------------------------------------------------------------------

/home/hust/.local/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc in run_line_magic(self, magic_name, line)
2082        kwargs['local_ns'] =     sys._getframe(stack_depth).f_locals
2083        with self.builtin_trap:
-> 2084     result = fn(*args,**kwargs)
2085        return result
2086 

<decorator-gen-106> in matplotlib(self, line)

/home/hust/.local/lib/python2.7/site-packages/IPython/core/magic.pyc in <lambda>(f, *a, **k)
191       # but it's overkill for just that one bit of state.
192       def magic_deco(arg):
--> 193   call = lambda f, *a, **k: f(*a, **k)
194 
195       if callable(arg):

/home/hust/.local/lib/python2.7/site-packages/IPython/core/magics/pylab.pyc in matplotlib(self, line)
98          print("Available matplotlib backends: %s" % backends_list)
99        else:
--> 100     gui, backend = self.shell.enable_matplotlib(args.gui)
101         self._show_matplotlib_backend(args.gui, backend)
102 

/home/hust/.local/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc in enable_matplotlib(self, gui)
2937      """
2938      from IPython.core import pylabtools as pt
-> 2939   gui, backend = pt.find_gui_and_backend(gui, self.pylab_gui_select)
2940 
2941      if gui != 'inline':

/home/hust/.local/lib/python2.7/site-packages/IPython/core/pylabtools.pyc in find_gui_and_backend(gui, gui_select)
258     """
259 
--> 260 import matplotlib
261 
262     if gui and gui != 'auto':

ImportError: No module named matplotlib

结果是错误的。

我确实在 conda 环境中安装了 matplotlibscipynumpy。它似乎在 ipython 中运行良好,但在 jupyter notebook 中却不行。是什么原因?如果您能帮我解决这个问题,我将不胜感激。

【问题讨论】:

  • 笔记本正在您设置的ipykernel_py2 环境中运行代码。您需要在该环境中安装 matplotlib。
  • 哦,再次感谢您。现在通过使用pyenv,一切顺利。

标签: python matplotlib anaconda jupyter-notebook


【解决方案1】:

我找到了问题。

在终端:

ipython
In [1]: import sys

In [2]: sys.path
Out[2]: 
['',
 '/home/hust/anaconda2/bin',
 '/home/hust/anaconda2/lib/python27.zip',
 '/home/hust/anaconda2/lib/python2.7',
 '/home/hust/anaconda2/lib/python2.7/plat-linux2',
 '/home/hust/anaconda2/lib/python2.7/lib-tk',
 '/home/hust/anaconda2/lib/python2.7/lib-old',
 '/home/hust/anaconda2/lib/python2.7/lib-dynload',
 '/home/hust/.local/lib/python2.7/site-packages',
 '/home/hust/anaconda2/lib/python2.7/site-packages',
 '/home/hust/anaconda2/lib/python2.7/site-packages/Sphinx-1.3.5-py2.7.egg',
 '/home/hust/anaconda2/lib/python2.7/site-packages/setuptools-20.3-py2.7.egg',
 '/home/hust/.local/lib/python2.7/site-packages/IPython/extensions',
 '/home/hust/.ipython']

但在 jupyter notebook 中,sys.path 是:

 ['',
  '/home/hust/anaconda2/envs/ipykernel_py2/lib/python27.zip',
  '/home/hust/anaconda2/envs/ipykernel_py2/lib/python2.7',
  '/home/hust/anaconda2/envs/ipykernel_py2/lib/python2.7/plat-linux2',
  '/home/hust/anaconda2/envs/ipykernel_py2/lib/python2.7/lib-tk',
  '/home/hust/anaconda2/envs/ipykernel_py2/lib/python2.7/lib-old',
  '/home/hust/anaconda2/envs/ipykernel_py2/lib/python2.7/lib-dynload',
  '/home/hust/.local/lib/python2.7/site-packages',
  '/home/hust/anaconda2/envs/ipykernel_py2/lib/python2.7/site-packages/setuptools-20.7.0-py2.7.egg',
  '/home/hust/anaconda2/envs/ipykernel_py2/lib/python2.7/site-packages',
  '/home/hust/.local/lib/python2.7/site-packages/IPython/extensions',
  '/home/hust/.ipython']

然后我记得我使用以下代码创建了一个python2内核。

conda create -n ipykernel_py2 python=2 ipykernel
source activate ipykernel_py2    
python -m ipykernel install --user

website 的描述中,如果您在 Python 3 上运行 Jupyter,您可以像这样设置 Python 2 内核。但实际上我在 Python 2 上运行 Jupyter,我无法在 jupyter notebook 中新建 python2 脚本的原因应该是别的。

最后,我意识到最好通过pyenv掌握所有python的环境。我应该首先安装 pyenv,然后我只需要使用这些命令,pyenv install anaconda-2.4.0pyenv global anaconda-2.4.0jupyter notebook

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-25
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 2016-06-23
    • 2019-09-08
    • 1970-01-01
    相关资源
    最近更新 更多