Неспособность импорт библиотек matplotlib.pyplot в jupyter (но не ipython)
обновление: ipykeynel 4.4.1
исправлена эта проблема утром 9 августа.
у меня есть новая установка, и я пытаюсь запустить свои зависимости python, а именно jupyter notebook и matplotlib. Я установил pip все, и" import 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, ipython и jupyter в различном порядке
- использование pip с --no-cache-dir и / или --ignore-installed
- удаление ~/.тайник./~ ,ipython и ~/.jupyter
- убедитесь, что никакие пакеты не установлены с apt-get, только с pip
- используя apt-get для установки python-matplotlib, ipython и python-jupyter
похоже, что я искалечил какую-то информацию о пути, но я не могу найти, что или где это вызовет, особенно после многократного удаления/переустановки pip и очистки кэша. Я прочитал каждый вопрос SO, касающийся импорта matplotlib, ни один из них не был полезен.
Я вернулся к matplotlib 1.4.3, и это сработало, но мне не хватает нескольких функций. Я понимаю, что это вероятно, сложный, поэтому, если у вас есть какое-либо понимание, даже если оно неполное, это было бы очень оценено. Кроме того, если это что-то достойное отчета об ошибке (никогда не делал, не уверен, что это проблема matplotlib, или просто локально goofed up), прокомментируйте как таковой, и я отправлю его. Спасибо!
информация о системе:
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)
вывод sys.путь в ipython и jupyter (одинаковый для обоих):
['',
'/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']
2 ответов
У меня такая же проблема, и проблема, возможно, вызвана ipykernel. после отката ipykernel версии до 4.3.1. проблема решена.
как и сказал @Igor Raush, это похоже на циркуляр импорта matplotlib.pyplot.
как уже упоминалось здесь, используя волшебные строки %matplotlib
позволяет мне использовать бэкэнд plot-in-new-window (Qt4Agg в моем случае). Я не знал, что вы можете использовать %matplotlib
сам по себе, без аргументов. Хотя обновление до ipykernel 4.4.1
исправляет эту проблему, я думал, что трюк с волшебной линией был довольно умным и может прояснить другие странности/ошибки импорта в будущем.