我尝试使用 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 许可协议
对于带有 Anaconda + Python 3.71 的 Windows 10(我确信其他 Python 3 版本和 Windows 7/8),您可以告诉 Basemap Proj4 的“epsg”文件在哪里成功。我没有“环境”或其他任何东西,因为要弄清楚它的工作太多了 - 所以我没有 anaconda\share\proj 区域(据我所知,为什么我没有它)。
但是,Basemap 想要的是文件“epsg”,使用 Windows 资源管理器在 Anaconda 目录中搜索它。如果找不到它,请通过打开“Anaconda Prompt”并输入以下内容来安装 Proj4:
如果找到它,它应该是这样的:
C:\Utilities\Python\Anaconda\Library\Share (这是我的位置,以及 \pkgs\ 我猜它放置包本身的地方 - 如果需要,它们也可以工作,我一开始使用它们,但是图书馆应该更好地完成更新(也许))。
在导入底图之前使用以下代码,它将起作用。将环境变量 PROJ_LIB 设置为 epsg 所在的位置,然后 Basemap 就可以使用了。
作为一个不错的奖励,要获取 Basemap 的高分辨率数据,Anaconda 不包括在启动的 Basemap 安装中,请输入“Anaconda Prompt”: