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

新手上路,请多包涵

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

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

谁能帮我解决这个错误?

原文由 Yupei 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 544
1 个回答

对于带有 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\ 我猜它放置包本身的地方 - 如果需要,它们也可以工作,我一开始使用它们,但是图书馆应该更好地完成更新(也许))。

在导入底图之前使用以下代码,它将起作用。将环境变量 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

原文由 user2403531 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题