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

问题描述 投票:14回答:7

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

from mpl_toolkits.basemap import Basemap`

跟踪追溯如下:

Traceback (most recent call last):
File "/Users/yupeipei/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2963, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-0a24a3a77efd>", line 7, in <module>
    from mpl_toolkits.basemap import Basemap
  File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 20, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "/Users/yupeipei/anaconda3/lib/python3.6/site-packages/mpl_toolkits/basemap/__init__.py", line 146, in <module>
    pyproj_datadir = os.environ['PROJ_LIB']
  File "/Users/yupeipei/anaconda3/lib/python3.6/os.py", line 669, in __ getitem__
    raise KeyError(key) from None
KeyError: 'PROJ_LIB'

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

有没有人遇到过这个错误?

任何人都可以帮我解决这个错误吗?

python python-3.x pycharm matplotlib-basemap
7个回答
15
投票

关于mewahl的评论我已经添加到我的.bashrc(我使用bash):

export PROJ_LIB = / path / to / your / installation / of / anaconda / share / proj /

现在底图(和其他工作)。


11
投票

对于带有Anaconda + Python 3.71的Windows 10(我确定其他Python 3版本和Windows 7/8),您可以告诉Basemap Proj4的“epsg”文件要成功。我没有“环境”或其他任何东西,因为它需要做太多的工作 - 所以我没有anaconda \ share \ proj区域(据我所知,为什么我没有它)。

但是,Basemap想要的是文件“epsg”,使用Windows资源管理器搜索Anaconda目录。如果找不到,请打开“Anaconda Prompt”并输入以下命令安装Proj4:

conda install -c conda-forge proj4

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

C:\ Utilities \ Python \ Anaconda \ Library \ Share(它是我的地方,以及\ pkgs \ places我想它放置包本身 - 如果需要那些也可以工作,我最初使用它们,但是图书馆应该更好地完成更新(也许))。

在导入Basemap之前使用以下代码,它将起作用。将环境变量PROJ_LIB设置为epsg所在的位置,然后Basemap可以满意。

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

作为一个很好的奖励,要获得Basemap的高分辨率数据,Anaconda不会在Basemap安装中包含,请输入“Anaconda Prompt”:

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

4
投票

您必须将Proj lib的路径设置为较新版本,此路径已被替换。在导入matplot_toolkits之前写下两行代码

  ### For Window's Users
      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。你的问题将得到解决。

  ### For Linux's Users
  import os
  os.environ['PROJ_LIB'] = r'/home/XXXXXX/anaconda3/pkgs/proj4-5.2.0- 
  he6710b0_1/share/proj'

1
投票

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

我自己遇到了这个错误,对我来说解决方案是卸载底图1.2,然后从我仍然躺着的旧轮文件安装底图1.1,然后再次安装底图1.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

0
投票

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

我使用内置IDE的Anaconda命名为“Spyder”。 Spyder比pycharm好。只有spyder的问题是缺乏intellisense。

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

加载.json较大的文件数据集时,内核重启的其他问题。

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.