Установка пакета pip из Jupyter Notebook не работает

Когда я запускаю !pip install geocoder в Jupyter Notebook, я получаю тот же результат, что и запуск pip install geocoder в терминале, но пакет геокодера недоступен, когда я пытаюсь его импортировать.

Я использую Ubuntu 14.04, Anaconda 4.0.0 и pip 8.1.2

Установка геокодера:

!pip install geocoder

The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo -H flag.
Collecting geocoder
  Downloading geocoder-1.15.1-py2.py3-none-any.whl (195kB)
    100% |████████████████████████████████| 204kB 3.2MB/s 
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): ratelim in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): six in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): click in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): decorator in /usr/local/lib/python2.7/dist-packages/decorator-4.0.10-py2.7.egg (from ratelim->geocoder)
Installing collected packages: geocoder
Successfully installed geocoder-1.15.1

Затем попробуйте импортировать его:

import geocoder

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-4-603a981d39f2> in <module>()
----> 1 import geocoder

ImportError: No module named geocoder

Я также попытался отключить ноутбук и перезапустить его без везения.

Изменить: я обнаружил, что с помощью терминала установка пакета геокодирования в /home/ubuntu/.local/lib/python2.7/site-packages и использование ноутбука устанавливает его в/usr/local/lib/python2.7/dist-пакетов, которые не находятся в пути. sys.path.append('/usr/local/lib/python2.7/dist-packages') решает проблему для текущего сеанса.

Итак, как я могу навсегда изменить путь или указать pip, где установить геокодер?

Ответы

Ответ 1

! pip install --user <package>

( "!" говорит, что ноутбук должен выполнить ячейку в виде команды оболочки)

Ответ 2

В jupyter ноутбуке под python 3.6 работает следующая строка:

!source activate py36;pip install <...>

Ответ 3

conda create -n py27 python=2.7 ipykernel

source activate py27

pip install geocoder

Ответ 4

Альтернативный вариант: вы также можете создать ячейку bash в jupyter с помощью ядра bash, а затем pip install geocoder. Это должно работать

Ответ 5

Попробуйте использовать некоторую магию оболочки: %% sh %%sh pip install geocoder сообщите мне, если это сработает, спасибо

Ответ 6

Использование pip2 для меня:

!pip2 install geocoder
...
import geocoder
g = geocoder.google('Mountain View, CA')
g.latlng
[37.3860517, -122.0838511]