无法导入底图,因为找不到 'epsg' 个文件或目录(MacOS、Anaconda、Jupyter Notebook)

Basemap won't import because 'epsg' file or directory can't be found (MacOS, Anaconda, Jupyter Notebook)

我正在尝试使用 Matplotlib Basemap 工具包,但是当我尝试导入它时,运行正在进入与 epsg 相关的 FileNotFoundError

我使用以下命令安装它:

conda install -c conda-forge basemap

这是我的导入命令:

from mpl_toolkits.basemap import Basemap

这是错误:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-1-d9467465a3b6> in <module>
----> 1 from mpl_toolkits.basemap import Basemap

/anaconda3/lib/python3.7/site-packages/mpl_toolkits/basemap/__init__.py in <module>
    154 # create dictionary that maps epsg codes to Basemap kwargs.
    155 pyproj_datadir = os.environ['PROJ_LIB']
--> 156 epsgf = open(os.path.join(pyproj_datadir,'epsg'))
    157 epsg_dict={}
    158 for line in epsgf:

FileNotFoundError: [Errno 2] No such file or directory: '/anaconda3/share/proj/epsg'

我是 Basemap 的新手,所以我不确定如何解决这个问题。我在 macOS Mojave 10.14.6.

上使用 Jupyter Notebook 运行 Python 3.7.3

提前致谢。

您正在查找此文件:https://github.com/matplotlib/basemap/blob/master/lib/mpl_toolkits/basemap/data/epsg

您的 PROJ_LIB 环境变量似乎没有以 .../site-packages 结尾。 请参考https://ctcoding.wordpress.com/2019/01/29/solved-proj_lib-error-when-installing-basemap-on-windows-using-anaconda/

看看$ conda info --base,然后运行

$ find `conda info --base` -name epsg

验证文件是否安装在预期目录中。 调整 PROJ_LIB 指向那里。

正如在另一条评论中所说 运行 在终端或 Anaconda 执行器中的这个命令(如果你在 Anaconda 中 运行 它确保你重做单引号部分,如果你复制并粘贴下面):

$ find `conda info --base` -name epsg

当您 运行 该命令时,应该出现几个文件路径。在将底图导入程序之前,输入以下行:

import os
os.environ['PROJ_LIB'] = '/Users/XXXXXXXX/opt/anaconda3/pkgs/proj4-5.2.0-h0a44026_1/share/proj/'

引号中的整行是从第一行代码开始出现的文件路径(末尾没有 epsg/)。上面引号中的部分是为我出现的。如果没有文件路径出现或出现其他问题,请查看此 github 页面(只是 google 错误)或尝试

conda install -c conda-forge proj4