无法在jupyter中导入matplotlib.pyplot(但不是ipython)
问题内容:
更新:ipykeynel 4.4.1
8月9日上午修复了此问题。
我进行了全新安装,并一直在尝试建立并运行python依赖项,即jupyter notebook和matplotlib。我已经安装了所有内容,并且“
import matplotlib”有效。如果我在jupyter笔记本中,并且尝试“ import
matplotlib.pyplot”或“从matplotlib import pyplot as plt”,我会得到:
ImportError Traceback (most recent call last)
...
/usr/local/lib/python2.7/dist-packages/IPython/core/pylabtools.pyc in configure_inline_support(shell, backend)
359 except ImportError:
360 return
--> 361 from matplotlib import pyplot
362
363 cfg = InlineBackend.instance(parent=shell)
ImportError: cannot import name pyplot
但是,如果我在ipython(命令行)中,则可以正常工作。另外,从命令行从模块运行图也可以。我尝试了多种技术:
- Pip以各种顺序安装/卸载matplotlib,ipython和jupyter
- 通过–no-cache-dir和/或–ignore-installed使用pip
- 删除〜/ .cache,〜/ .ipython和〜/ .jupyter
- 确保没有软件包与apt-get一起安装,仅与pip一起安装
- 使用apt-get安装python-matplotlib,ipython和python-jupyter
感觉我已经弄乱了某种路径信息,但是我无法找到导致此问题的原因或原因,尤其是在多次卸载/重新安装pip和清除缓存后。我已经阅读了与导入matplotlib有关的每个SO问题,没有一个有用的帮助。
我回滚到matplotlib
1.4.3,并且可以正常工作,但是它缺少我需要的几个功能。我意识到这可能是一个棘手的问题,因此,即使您有不完整的见解,也将不胜感激。另外,如果这是值得提交错误报告的内容(从来没有做过,请不确定这是否是matplotlib问题,还是只是在本地搞砸了),请这样发表评论,我将提交一个。谢谢!
系统信息:
Linux Mint 18 "Sarah"
Python==2.7.12
ipykernel==4.4.0
ipython==5.0.0
ipython-genutils==0.1.0
ipywidgets==5.2.2
jupyter==1.0.0
jupyter-client==4.3.0
jupyter-console==5.0.0
jupyter-core==4.1.0
notebook==4.2.2
numpy==1.11.1
pip 8.1.2 from /usr/local/lib/python2.7/dist-packages (python 2.7)
ipython和jupyter中sys.path的输出(两者相同):
['',
'/usr/local/bin',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/local/lib/python2.7/dist-packages/IPython/extensions',
'/home/mm/.ipython']
问题答案:
我有同样的问题,这个问题可能是由ipykernel产生的。在我将ipykernel版本回滚到4.3.1之后。问题解决了。
就像@Igor Raush所说的一样,它看起来像是matplotlib.pyplot的导入通知。