Python 导入basemap的Spyder中的PROJ_LIB错误

Python 导入basemap的Spyder中的PROJ_LIB错误,python,matplotlib-basemap,Python,Matplotlib Basemap,我对python非常陌生,我正在尝试将basemap导入Spyder 3.6。我在Anadonda提示符和Spyderimport basemap中使用了conda install basemap,但出现了一个错误 File "<ipython-input-1-d9467465a3b6>", line 1, in <module> from mpl_toolkits.basemap import Basemap File "D:\Anaconda_Py

我对python非常陌生,我正在尝试将
basemap
导入Spyder 3.6。我在Anadonda提示符和Spyder
import basemap
中使用了
conda install 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'

文件“”,第1行,在
从mpl_toolkits.basemap导入basemap
文件“D:\Anaconda\u Python\lib\site packages\mpl\u toolkits\basemap\\uuuuu init\uuuuu.py”,第155行,在
pyproj_datadir=os.environ['PROJ_LIB']
文件“D:\Anaconda\u Python\lib\os.py”,第678行,在\uu getitem中__
从“无”提升钥匙错误(钥匙)
KeyError:“项目库”
我也研究过类似的问题,但对我来说不起作用:

  • 但错误刚刚更改为
    FileNotFoundError:[Errno 2]没有这样的文件或目录:“D:\\Anaconda\u Python\\share\\proj\\epsg'

    • 这似乎是一个常见问题。问题在于Basemap没有正确定位Proj4的“epsg”文件所在的位置。 通过首先查找文件“epsg”所在的位置,然后使用一些代码添加路径本身,可以很容易地解决这个问题

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

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

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

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

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

      您也可以将epsg文件复制到它搜索它的目录中,在您的情况下
      D:\\Anaconda\u Python\\share\\proj\\\
      我遇到了相同的错误(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
      

      感谢您为我编写了这段代码!谢谢这在我使用os.environ[“PROJ_LIB”]=r'/opt/anaconda3/share/PROJ'时起到了作用