我尝试使用 Basemap 包通过 PyCharm 绘制 map ,但我遇到了一些问题
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 相同。
有没有人遇到过这个错误?
谁能帮我解决这个错误?
最佳答案
对于带有 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\地方,我猜它把包本身放在那里 - 如果需要,我一开始使用它们,但是库应该更好地通过更新工作(也许))。
在导入 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
关于python - PyCharm 中 basemap 导入错误 — KeyError : 'PROJ_LIB' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52295117/