Basemap library using Anaconda Jupyter Notebooks - KeyError: PROJ_LIB

做~自己de王妃 提交于 2019-11-27 16:11:02

问题


I'm trying to install and import the Basemap library into my Jupyter Notebook, but this returns the following error:

KeyError: 'PROJ_LIB'

After some research online, I understand I'm to install Basemap on a separate environment in Anaconda. After creating a new environment and installing Basemap (as well as all other relevant libraries), I have activated the environment. But when importing Basemap I still receive the same KeyError.

Here's what I did in my MacOS terminal:

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

Then in Jupyter Notebook I run the following:

from mpl_toolkits.basemap import Basemap

Can anyone tell me why this results in a KeyError?


回答1:


Need to set the PROJ_LIB environment variable either before starting your notebook or in python with os.environ['PROJ_LIB'] = '<path_to_anaconda>/share/proj'

Ref. Basemap import error in PyCharm —— KeyError: 'PROJ_LIB'




回答2:


In Windows 10 command line: first find the directory where the epsg file is stored:

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

...

c:\Users\username\AppData\Local\conda\conda\envs\envname\Library\share\epsg

...

then either in command line:

activate envname

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

(make sure there are no leading on trailing spaces in the path!) and then

jupyter notebook

or add this to your jupyter notebook (as suggested by john ed):

import os

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



回答3:


The problem occurs as the file location of "epsg" and PROJ_LIB has been changed for recent versions of python, but somehow they forgot to update the init.py for Basemap. If you have installed python using anaconda, this is a possible location for your espg file: C:\Users(xxxx)\AppData\Local\Continuum\anaconda3\pkgs\proj4-5.1.0-hfa6e2cd_1\Library\share So you have to add this path at the start of your code in spyder or whatever field you are using.

import os

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

from mpl_toolkits.basemap import Basemap




回答4:


Launch Jupyter Notebook from command prompt and it won't throw the same error. It somehow works for me!



来源:https://stackoverflow.com/questions/52911232/basemap-library-using-anaconda-jupyter-notebooks-keyerror-proj-lib

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!