Модуль не найден на 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-ноутбук из виртуального сервера, который содержит все необходимые вам модули.