PyCharm中的底图导入错误— KeyError:'PROJ_LIB'

时间:2018-09-12 12:24:40

标签: python python-3.x pycharm matplotlib-basemap

我尝试使用Basemap包通过PyCharm绘制地图,但是我遇到了问题

// if (foo32 == bar) return 2;
if (bar >= 0 && foo32 == (unsigned)bar) return 2;

和回溯如下:

from mpl_toolkits.basemap import Basemap`

我对PyCharm的此错误感到困惑,因为在Jupyter或Spyder上正确运行了相同的脚本! PyCharm中的环境是../anaconda3/lib/python3.6,与anaconda的环境相同。

以前有人遇到过此错误吗?

有人可以帮助我解决此错误吗?

8 个答案:

答案 0 :(得分:7)

对于带有Anaconda + Python 3.71(并且我确定其他Python 3版本和Windows 7/8)的Windows 10,您可以告诉Basemap Proj4的“ epsg”文件将在哪里成功。我没有“环境”之类的东西,因为它太麻烦了,所以我没有anaconda \ share \ proj区域(据我所知,为什么我没有它)。 / p>

但是,底图需要的是文件“ epsg”,请使用Windows资源管理器在Anaconda目录中搜索它。如果找不到,请通过打开“ Anaconda Prompt”并输入以下内容来安装Proj4:

conda install -c conda-forge proj4

如果找到它,它应该是这样的:

C:\ Utilities \ Python \ Anaconda \ Library \ Share (这是我的所在位置,还有\ pkgs \我可以将其放置在包中的位置-如果这些也可以使用需要的是,我最初是使用它们的,但是一个库应该可以更好地进行更新(也许)。)

在导入底图之前使用以下代码,它将起作用。将环境变量PROJ_LIB设置为epsg所在的任何位置,然后底图即可满足要求。

import os
os.environ["PROJ_LIB"] = "C:\\Utilities\\Python\\Anaconda\\Library\\share"; #fixr
from mpl_toolkits.basemap import Basemap

作为一个不错的选择,要获取底图的高分辨率数据(Anaconda不包含在开始的底图安装中),请键入“ Anaconda Prompt”:

conda install -c conda-forge basemap-data-hires

答案 1 :(得分:1)

这似乎是一个常见问题。关于它的一些错误报告

我自己遇到了这个错误,对我来说,解决方案是卸载底图1.2,然后从我仍然躺在的旧轮文件中安装底图1.1,然后再次安装底图1.2。老实说,我不知道为什么这样做。

从上述这些问题来看,人们还报告了各种各样的其他解决方案。希望其中之一也适合这里。

答案 2 :(得分:1)

答案来自Github,对我有用。 https://github.com/conda-forge/basemap-feedstock/issues/30

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, 'share'), 'proj')
os.environ["PROJ_LIB"] = proj_lib

from mpl_toolkits.basemap import Basemap

答案 3 :(得分:1)

这对我有用:

import os
os.environ["PROJ_LIB"] = os.path.join(os.environ["CONDA_PREFIX"], "share", "proj")

这通过省略对epsg文件的路径的硬编码,扩展了@Yusuf Baktir的答案。这样,代码可以在任何安装了conda(当然是激活的)的机器上工作。

答案 4 :(得分:0)

我遇到了同样的问题。我安装了anaconda并安装了conda install -c anaconda底图。

我使用了内置于IDE中的名为“ Spyder”的Anaconda。 Spyder比pycharm好。间谍的唯一问题是缺乏智能。

我通过设置路径解决了Proj4的问题。

在加载.json更大的文件数据集时,其他问题内核会重新启动。

我使用notepad ++和010编辑器以小块重新保存文件,最后我合并了所有输出。

答案 5 :(得分:0)

要修复pycharm的Proj4简单解决方案是转到设置->项目解释器-> +->在搜索字段中编写proj4并安装。

答案 6 :(得分:0)

您必须将Proj lib的路径设置为较新的版本,此路径已被替换。 导入matplot_toolkits

之前,请编写以下两行代码
import os
os.environ['PROJ_LIB'] = r'C:\Users\XXXXX\Anaconda3\pkgs\proj4-5.2.0- 
ha925a31_1\Library\share'

要查找Proj_lib的路径,只需搜索epsg,然后复制此epsg文件位置并放入proj_lib中。 您的问题将得到解决。

答案 7 :(得分:0)

我无法解决此问题,但可以找到其他替代方法,使用CartoPy。 python 2.7用户正在维护底图。 CartoPy是更好的选择