Ответ 1
Необходимо установить переменную среды PROJ_LIB либо до запуска вашего ноутбука, либо в python с помощью os.environ['PROJ_LIB'] = '<path_to_anaconda>/share/proj'
Ссылка Ошибка импорта базы данных в PyCharm - 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?
Необходимо установить переменную среды PROJ_LIB либо до запуска вашего ноутбука, либо в python с помощью os.environ['PROJ_LIB'] = '<path_to_anaconda>/share/proj'
Ссылка Ошибка импорта базы данных в PyCharm - KeyError: 'PROJ_LIB'
В командной строке 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'
Проблема возникает, когда расположение файлов "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 Базовая карта
Запустите Jupyter Notebook из командной строки, и он не выдаст такую же ошибку. Это как-то работает для меня!