导入底图的Spyder中的PROJ_LIB错误

时间:2019-12-17 14:46:06

标签: python matplotlib-basemap

我对python非常陌生,我正在尝试将basemap导入Spyder 3.6。我在Anadonda Prompt和Spyder conda install basemap中使用了import basemap,但出现错误


  File "<ipython-input-1-d9467465a3b6>", line 1, in <module>
    from mpl_toolkits.basemap import Basemap

  File "D:\Anaconda_Python\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 155, in <module>
    pyproj_datadir = os.environ['PROJ_LIB']

  File "D:\Anaconda_Python\lib\os.py", line 678, in __getitem__
    raise KeyError(key) from None

KeyError: 'PROJ_LIB'

我看过类似的问题,但是对我来说不起作用:

3 个答案:

答案 0 :(得分:1)

这似乎是一个常见问题。问题在于底图无法正确定位Proj4的“ epsg”文件所在的位置。 首先找到文件“ epsg”的位置,然后使用一些代码添加路径本身,即可轻松解决此问题。

应该在这样的地方(这是我的所在地,取决于环境名称和下载Anaconda的位置而有所不同)

C:\ Users \ XXX \ Anaconda3 \ envs \ env \ Library \ share

查看您的错误消息,我相信您的错误消息应该位于“ D:\ Anaconda_Python \ share”中的某个位置

然后在导入底图之前插入以下代码,它应该可以工作。

import os
os.environ["PROJ_LIB"] = r'C:\Users\XXX\Anaconda3\envs\env\Library\share (location of epsg)'
from mpl_toolkits.basemap import Basemap

答案 1 :(得分:0)

您还可以将epsg文件复制到其搜索目录中,以您的情况D:\\Anaconda_Python\\share\\proj\\

答案 2 :(得分:0)

我遇到了同样的错误(Windows 10,Anaconda)。因此,我试图找到出现在“ C:\ Users \ Yury \ anaconda3 \ Library \ share”中的“ epsg”文件,并添加这些行,使它终于可以工作

import os
os.environ["PROJ_LIB"] = 'C:\\Users\\Yury\\anaconda3\\Library\\share'

或者可以做同样的事情

import os
import conda
conda_file_dir = conda.__file__
conda_dir = conda_file_dir.split('lib')[0]
proj_lib = os.path.join(os.path.join(conda_dir, 'Library'), 'share')
os.environ["PROJ_LIB"] = proj_lib

感谢您提供这段代码