Базовая карта с помощью ноутбуков Anaconda Jupyter - KeyError: PROJ_LIB

Я пытаюсь установить и импортировать библиотеку Basemap в свой Jupyter Notebook, но это возвращает следующую ошибку:

KeyError: 'PROJ_LIB'

После некоторых исследований в Интернете, я понимаю, что я должен установить Basemap в отдельной среде в Anaconda. После создания новой среды и установки Basemap (а также всех других соответствующих библиотек) я активировал среду. Но при импорте Basemap я все равно получаю тот же KeyError.

Вот что я сделал в своем терминале MacOS:

conda create --name Py3.6 python=3.6 basemap
source activate Py3.6
conda upgrade proj4
env | grep -i proj
conda update --channel conda-forge proj4

Затем в Jupyter Notebook я запускаю следующее:

from mpl_toolkits.basemap import Basemap

Может кто-нибудь сказать мне, почему это приводит к KeyError?

Ответ 2

В командной строке Windows 10: сначала найдите каталог, в котором хранится файл epsg :

where /r "c:\Users\username" epsg.*

...

C:\Users\имя пользователя\AppData\Local\Конда\Конда\envs\envname\Library\доля\ EPSG

...

затем либо в командной строке:

activate envname

SET PROJ_LIB=c:\Users\username\AppData\Local\conda\conda\envs\envname\Library\share

(убедитесь, что на пути нет пробелов!), а затем

jupyter notebook

или добавьте это в свой блокнот jupyter (как предложил Джон Эд):

import os

os.environ['PROJ_LIB'] = r'c:\Users\username\AppData\Local\conda\conda\envs\envname\Library\share'

Ответ 3

Проблема возникает, когда расположение файлов "epsg" и PROJ_LIB было изменено для последних версий python, но почему-то они забыли обновить init.py для Basemap. Если вы установили python с помощью anaconda, это возможное место для вашего файла espg: C:\Users (xxxx)\AppData\Local\Continuum\anaconda3\pkgs\proj4-5.1.0-hfa6e2cd_1\Library\share Итак, у вас есть чтобы добавить этот путь в начале вашего кода в spyder или в любом другом поле, которое вы используете.

import os

os.environ ['PROJ_LIB'] = r'C:\Users (xxxx)\AppData\Local\Continuum\anaconda3\pkgs\proj4-5.1.0-hfa6e2cd_1\Library\share '

от mpl_toolkits.basemap import Базовая карта

Ответ 4

Запустите Jupyter Notebook из командной строки, и он не выдаст такую же ошибку. Это как-то работает для меня!