更新:ipykeynel 4.4.1
在8月9日早上修补了这个问题。
我有一个全新的安装,我一直在努力让我的python依赖项启动并运行,即jupyter notebook和matplotlib。我已经安装了所有东西,然后输入matplotlib"作品。如果我在一个jupyter笔记本中,我尝试"导入matplotlib.pyplot"或者"从matplotlib导入pyplot作为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的每个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']
答案 0 :(得分:6)
我有同样的问题,问题可能是由ipykernel产生的。 在我将ipykernel版本回滚到4.3.1之后。问题解决了。
就像@Igor Raush所说,它看起来像是matplotlib.pyplot的导入循环。
答案 1 :(得分:1)
As mentioned here,使用魔术线%matplotlib
允许我使用新窗口中的绘图后端(在我的情况下为Qt4Agg)。我不知道你可以单独使用%matplotlib
,没有争论。即使对ipykernel 4.4.1
的更新修复了这个问题,我认为神奇的线条技巧非常聪明,并且可能会在将来消除其他导入怪异/错误。