在利用地图可视化经纬度信息的时候经常会用到mpl_toolkits中的basemap,而今天在导入库的时候发现了报错,这让我大感迷惑。
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import numpy as np
错误如下:
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Cell In[40], line 2
1 import matplotlib.pyplot as plt
----> 2 from mpl_toolkits.basemap import Basemap
3 import numpy as np
5 lons = np.array([120.0, 121.0, 122.0, 123.0, 124.0]) # 经度
ModuleNotFoundError: No module named 'mpl_toolkits.basemap'
这一般来说不会是mpl_toolkits的问题(Python工具包,不存在需要安装mpl_toolkits的问题),通过查找资料,发现是basemap这个模块还需要额外安装,于是尝试着
pip install basemap
却发生了
Collecting basemap
...
...
Installing collected packages: pyproj, basemap-data, matplotlib, basemap
Attempting uninstall: pyproj
Found existing installation: pyproj 3.7.0
Uninstalling pyproj-3.7.0:
Note: you may need to restart the kernel to use updated packages.
ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。: 'c:\\users\\appdata\\local\\programs\\python\\python311\\lib\\site-packages\\pyproj\\database.cp311-win_amd64.pyd'
Consider using the `--user` option or check the permissions.
[notice] A new release of pip is available: 24.0 -> 24.2
[notice] To update, run: python.exe -m pip install --upgrade pip
让我们查看Error信息,通过信息发现由于pyproj包 3.7.0版本(其对应我的Python3.11.x的版本)无法安装导致,于是我们开始安装pyproj3.7.0
pip install pyproj==3.7.0
但是本次安装还是出现了Error,还是出现
[WinError 5] 拒绝访问。: 'c:\\users\\appdata\\local\\programs\\python\\python311\\lib\\site-packages\\pyproj\\database.cp311-win_amd64.pyd'
但是同样的存在的还是那个之前被我们忽略了的note
Note: you may need to restart the kernel to use updated packages.
于是当我们重启内核再次执行安装代码的时候就成功了!
Successfully installed pyproj-3.7.0
紧接着重新运行安装basemap库的代码,也很顺利的成功了
Successfully installed basemap-1.4.1
而我们的主角mpl_toolkits.basemap的导入也经过vscode的检测由未识别
转变成了
运行上述代码,成功导入。