簡體   English   中英

無法在jupyter中導入matplotlib.pyplot(但不是ipython)

[英]Failure to import matplotlib.pyplot in jupyter (but not ipython)

更新: ipykeynel 4.4.1在8月9日早上修補了這個問題。

我有一個全新的安裝,我一直在嘗試讓我的python依賴項啟動並運行,即jupyter notebook和matplotlib。 我已經安裝了所有東西,並且“import matplotlib”有效。 如果我在一個jupyter筆記本中,我嘗試“import matplotlib.pyplot”或“從matplotlib import 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,ipython和jupyter
  • 使用pip和--no-cache-dir和/或--ignore-installed
  • 刪除〜/ .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的導入循環。

正如這里提到的 ,使用魔術線%matplotlib允許我使用新窗口中的繪圖后端(在我的情況下為Qt4Agg)。 我不知道你可以自己使用%matplotlib ,沒有參數。 即使對ipykernel 4.4.1的更新修復了這個問題,我認為神奇的線條技巧非常聰明,並且可能在未來清除其他導入怪異/錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM