Модуль не найден на ipython notebook

У меня есть ноутбук ipython, который начинается с

import sklearn

Когда я запустил его, я получаю:

ImportError: No module named sklearn

действительно, если я запустил следующий фрагмент на ноутбуке, он не показывает scikit_learn:

import pip
installed_packages = pip.get_installed_distributions()
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
     for i in installed_packages])
print installed_packages_list

Однако, когда я запускаю фрагмент из командной строки, scikit_learn находится в списке.

Я думал о проблеме с версией (модуль установлен для одной версии, а не на другой), как на ноутбуке, так и в командной строке, sys.version дает 2.7.5

Есть идеи по поводу этой проблемы?

После комментариев cel:

ipython -c "import sys; print(sys.executable)" 

выводит/usr/bin/python (а также работает import sys; print(sys.executable) непосредственно в записной книжке)

Тогда /usr/bin/python -m pip install scikit-learn выходы: Требование уже выполнено (используйте --upgrade для обновления): scikit-learn in/Users/MyUserName

Ответы

Ответ 1

Я смог исправить эту ошибку на Ubuntu, добавив ячейку к верхней части ноутбука, добавив каталог модуля в путь:

import sys
sys.path.append('/usr/lib/python2.7/dist-packages')

Путь добавления можно найти при запуске pip install <something> (например, numpy), и он сообщает вам, где каждый пакет установлен или уже существует.

Ответ 2

Возможно ли, что /usr/bin/python на самом деле символическая ссылка?

Лучшим решением является то, что вы должны запускать свой ipython-ноутбук из виртуального сервера, который содержит все необходимые вам модули.