Библиотека базовой карты с использованием записных книжек Anaconda Jupyter - KeyError: PROJ_LIB - PullRequest
0 голосов
/ 21 октября 2018

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

KeyError: 'PROJ_LIB'

После некоторых исследований в Интернете я понимаю, что должен установить Basemap наотдельная среда в Анаконде.После создания новой среды и установки 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?

Ответы [ 4 ]

0 голосов
/ 08 января 2019

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

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

...

c: \Users \ username \ AppData \ Local \ conda \ conda \ envs \ envname \ Library \ share \ 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'
0 голосов
/ 17 ноября 2018

Проблема возникает из-за того, что местоположение файла "epsg" и PROJ_LIB было изменено для последних версий python, но почему-то они забыли обновить init .py для базовой карты.Если вы установили 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 Basemap

0 голосов
/ 27 декабря 2018

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

0 голосов
/ 23 октября 2018

Необходимо установить переменную среды PROJ_LIB либо перед запуском ноутбука, либо в python с помощью os.environ['PROJ_LIB'] = '<path_to_anaconda>/share/proj'

Ref. Ошибка импорта базовой карты в PyCharm —— KeyError: 'PROJ_LIB'

...