- 說在前面
在使用basemap的時候走了很多的彎路,正確的姿勢應該是在Anaconda下面安裝basemap,如果使用原生的python的話,尤其是多個python版本共存的情況,是很難把basemap安裝成功的。
Anaconda是一個用於科學計算的Python發行版,支持Linux, Mac, Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本python並存、切換以及各種第三方包安裝問題。也就是這個里面包含了python,各種包,包管理工具等等。
- win7下Anaconda和basemap的安裝和使用
- 安裝請看下面的這個博客:(我下載的是python3.7的安裝包,477M的安裝包只需要不到10分鍾就下載完了)
https://blog.csdn.net/weixin_43715458/article/details/100096496
下載的安裝包的名稱叫 Anaconda3-2020.02-Windows-x86_64.exe 。
- 當在windows下面的Anaconda的命令行中運行 conda install 包名稱 時,如果出現Collecting package metadata (current_repodata.json): failed的錯誤提示,可以按照下面的方式來解決掉:
把路徑“Anaconda3/Library/bin ”下面的文件復制到路徑“Anaconda3/DLLs”下 :
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
- 安全起見,把包都更新一遍 conda upgrade –all
- 安裝 basemap
conda install basemap
這里安裝的版本是 basemap-1.2.1
- 寫一個腳本basemaptest.py如下,在Anaconda Prompt中 執行python basemaptest.py
注意:這個腳本只能在 basemap-1.2.1,上可以正常顯示,basemap每個版本之間變化非常大,其他版本有可能編譯不過。
frommpl_toolkits.basemapimportBasemap
importmatplotlib.pyplotasplt
#plt.figure(figsize=(16,8))
m=Basemap(llcrnrlon=77,llcrnrlat=14,urcrnrlon=140,urcrnrlat=51,projection='lcc',lat_1=33,lat_2=45,lon_0=100)
#m=Basemap(llcrnrlon=73,llcrnrlat=18,urcrnrlon=135,urcrnrlat=53)
m.drawcountries(linewidth=1.5)
m.drawcoastlines()
plt.show()
- 可以正常的顯示出下面的窗口。
- ubuntu16下Anaconda和basemap的安裝和使用
- 安裝包的下載
和windows的安裝包一起下載的,名稱叫 Anaconda3-2020.02-Linux-x86_64.sh, 大小是534M,也是10分鍾內就下載完了。下載的版本是python3.7
參考博客:https://blog.csdn.net/ITBigGod/article/details/85690257
- 按照上面的博客把Anaconda3安裝好后,我的python並沒有使用Anaconda3下的python,還是使用的我之前的安裝的原生的python3.8,把軟連接建一下就行了。
cd /usr/bin/
rm python
ln -s /root/anaconda3/bin/python /usr/bin/python
ln -s /root/anaconda3/bin/conda /usr/bin/conda
建立好軟連接后,再次在shell中查詢python版本、conda版本、pip版本。顯示如下,就是正常了的
- 安全起見,把包都更新一遍 conda upgrade –all
- 安裝 basemap
conda install basemap
這里安裝的版本是 basemap-1.2.0,同時安裝的windows安裝的是1.2.1。
- python basemaptest.py,執行上面的腳本。
錯誤原因:
Anaconda沒有自動配置環境變量PROJ_LIB,而basemap的__init__.py文件中epsgf的設置代碼如下,因此會報錯
解決方法:
找到“epsg”的相應位置,這個文件在我的仿真機器上面的位置是 /root/anaconda3/share/proj
設置環境變量:
vim /etc/profile
export PROJ_LIB=/root/anaconda3/share/proj:$PROJ_LIB
重啟虛擬機
- ok,圖形畫出來了。