Пакет импорта работает в блокноте jupyter, но не в iPython и Anaconda cmd - PullRequest
0 голосов
/ 10 октября 2018

При поиске по этой проблеме я столкнулся с некоторыми вопросами, задающими обратное, т. Е. Пакет открывается в iPython, но не в Jupyter Notebook.Но в моем случае все наоборот.Вот почему я опубликовал этот вопрос.

Я добавил path\to\anaconda3 и path\to\anaconda3\Lib\site-packages в переменную окружения, но это не решает проблему.

Я вижу пакеты в site-packages папка: enter image description here

Но я просто не могу импортировать некоторые пакеты в iPython: enter image description here

или сPython в anaconda cmd: enter image description here

Но в Jupyter Notebook он работает нормально: enter image description here

Что делать / можно делатьчтобы это исправить?

Вот еще некоторая информация, если это поможет:

(base) C:\Users\h473>where python
C:\Users\h473\AppData\Local\Continuum\anaconda3\python.exe

(base) C:\Users\h473>where conda
C:\Users\h473\AppData\Local\Continuum\anaconda3\Library\bin\conda.bat
C:\Users\h473\AppData\Local\Continuum\anaconda3\Scripts\conda.exe

(base) C:\Users\h473>where pip
C:\Users\h473\AppData\Local\Continuum\anaconda3\Scripts\pip.exe

PS: Это происходит не для всех пакетов, только для некоторых пакетов, как показанодля панд, numpy и matplotlib на скриншоте ниже.

enter image description here

1 Ответ

0 голосов
/ 10 октября 2018

Когда вы используете matplotlibseaborn построен поверх него), он должен использовать так называемый бэкэнд, который используется для отображения реального графического интерфейса пользователя с графиком в нем, как только вы выполните, например, matplotlib.pyplot.show().

Когда вы используете Jupyter Notebook с matplotlib во встроенном режиме (по умолчанию, я думаю, но не уверен), тогда используется специфичный для Jupyter бэкэнд (module://ipykernel.pylab.backend_inline).Это имеет смысл, поскольку графики не должны появляться в отдельных окнах, а должны отображаться внутри самого ноутбука.

Однако, когда вы находитесь в интерактивном сеансе Python или iPython, Qt5 использовался, как показало

import matplotlib
print(matplotlib.rcParams["backend"]) # this prints the backend that would be loaded when trying anything with pyplot

.Поскольку вы получаете ошибку, которую вы получаете, похоже, что ваша установка QT5 не работает.Вы можете попытаться переустановить их с помощью команд conda, но сейчас вы также можете использовать другой бэкэнд, который вам нужно указать перед попыткой загрузить seaborn:

import matplotlib
matplotlib.use("TkAgg")    #use backend TkAgg
import seaborn

Вы также можете изменитьбэкэнд по умолчанию загружается в TkAgg путем создания файла matplotlibrc в C:\Users\<your name>\.matplotlib\ с

backend      : TkAgg

.

...