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

时间:2019-11-03 18:28:53

标签: python-3.x macos jupyter-notebook anaconda matplotlib-basemap

我正在尝试使用Matplotlib底图工具包,但是在尝试导入时会遇到与FileNotFoundError相关的epsg

我使用以下命令安装了它:

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完全陌生,所以我不确定如何解决此问题。我正在使用Jupyter Notebook在macOS Mojave 10.14.6上运行Python 3.7.3。

谢谢。

2 个答案:

答案 0 :(得分:0)

您正在寻找以下文件: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指向该位置。

答案 1 :(得分:0)

如另一条评论所述,在终端或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