Ответ 1
! pip install --user <package>
( "!" говорит, что ноутбук должен выполнить ячейку в виде команды оболочки)
Когда я запускаю !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, где установить геокодер?
! pip install --user <package>
( "!" говорит, что ноутбук должен выполнить ячейку в виде команды оболочки)
В jupyter ноутбуке под python 3.6 работает следующая строка:
!source activate py36;pip install <...>
conda create -n py27 python=2.7 ipykernel
source activate py27
pip install geocoder
Альтернативный вариант:
вы также можете создать ячейку bash в jupyter с помощью ядра bash, а затем pip install geocoder
. Это должно работать
Попробуйте использовать некоторую магию оболочки: %% sh
%%sh pip install geocoder
сообщите мне, если это сработает, спасибо
Использование pip2 для меня:
!pip2 install geocoder
...
import geocoder
g = geocoder.google('Mountain View, CA')
g.latlng
[37.3860517, -122.0838511]