PyCharm中的Basemap导入错误-KeyError:“PROJ_LIB”

2024-05-21 17:22:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用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相同。

以前有人遇到过这个错误吗?

有谁能帮我解决这个错误吗?


Tags: infrompyimportliblineuserspycharm
3条回答

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

  ### 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'

对于使用Anaconda+Python 3.71(我相信其他python3版本和Windows 7/8)的Windows 10,可以告诉Basemap Proj4的“epsg”文件将在哪里成功。我没有一个“环境”或者其他什么,因为这是太多的工作要弄清楚-所以我没有一个水蟒共享区(就我所知,为什么我没有它)。

但是,Basemap需要的是文件“epsg”,使用Windows资源管理器在Anaconda目录中搜索它。如果找不到Proj4,请打开“Anaconda提示符”并键入:

conda install -c conda-forge proj4

如果它找到了,它应该在类似于:

C:\ Utilities\Python\Anaconda\Library\Share(这是我的所在地,也是我猜它放置包本身的地方——如果需要的话,这些也可以工作,我首先使用它们,但是Library one应该更好地(可能)完成更新)。

在导入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

在mewahl的评论之后,我添加到了我的.bashrc(我使用bash):

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

现在,basemap(和其他工作)。

相关问题 更多 >