Блокнот Jupyter не отражает изменения версии библиотеки в виртуальной среде - PullRequest
0 голосов
/ 22 апреля 2020

Я новичок в ноутбуках Jupyter и виртуальной среде. Я думаю, что я сталкиваюсь с действительно тривиальной проблемой.

Я пытаюсь импортировать matplotlib в блокнот Jupyter, и импорт работает нормально. Тем не менее, он использует неправильную версию библиотеки (установленной также в масштабе всей системы), и я не знаю, как заставить ее использовать ту, что в виртуальной среде.

В моей виртуальной среде я хочу использовать самую последнюю версию matplotlib, и поэтому я сделал pip install --upgrade matplotlib в моей виртуальной среде. Обновление работало нормально. Теперь, если я выполняю pip show matplotlib в своей виртуальной среде, я получаю:

Name: matplotlib
Version: 2.2.5
...

Вместо этого, если я делаю ту же команду в моем доме, я получаю:

Name: matplotlib
Version: 1.5.1

Однако, если в мой блокнот jupyter у меня

import matplotlib
print ("matplotlib version:",matplotlib.__version__)

Я получаю:

('matplotlib version:', '1.5.1')

Не могли бы вы помочь мне понять, что я делаю неправильно?

1 Ответ

0 голосов
/ 22 апреля 2020

Я нашел решение своей проблемы. Прежде всего, я прочитал этот длинный пост , который я предлагаю всем, используя conda или pip.

Тогда я понял, что среда оболочки определяется при запуске ноутбука Jupyter, тогда как исполняемый файл Python определяется ядром, и эти два значения не обязательно совпадают.

Я понял это, поместив в начале своей тетради jupyter следующее:

paths = !type -a python
for path in set(paths):
    path = path.split()[-1]
    print(path)
    !{path} -c "import sys; print(sys.path)"
    print()

!type python

import sys
sys.executable

!pip show matplotlib

Это показало, что я все еще использую старую версию библиотеки matplotlib.

Поэтому я добавил

!{sys.executable} -m pip install --upgrade matplotlib

Перезапустил мое ядро ​​jupyter, и это решило мою проблему.

Надеюсь, это решение поможет кому-то еще в такой же ситуации.

...