登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
主要参考内容: 这次在linux服务器上装Basemap,遇到好多困难,总结一下: 1、首先说一下服务器情况,64位的Centos,自带了2.7的python,其他人给装了一个python3.6,但是没用过,只装了numpy等少数几个库。开始就在python3.6下安装basemap1.1.0,对着教程和报错用pip安装了matplotlib、pyproj、pyshp等库,然后basemap安装上了,但是在调用的时候显示matplotlib有问题,考虑到好多匹配的库都没有,所以就想用anaconda直接安装,所以就把python3.6删掉了。 2、从anaconda官网下载了最新的linux版本(Anaconda3-2019.10-Linux-x86_64.sh),然后用 bash Anaconda3-2019.10-Linux-x86_64.sh 直接安装,之后需要配置anaconda的环境在.bashrc中最后面添加 export PATH=/root/anaconda3/bin:$PATH (路径换成自己的) 然后记得source .bashrc 。 之后参考卢明冬博客中的步骤进行。 解压下载的basemap,安装依赖库,安装GEOS,安装GEOS的时候 export GEOS_DIR=/usr/local 这一步应该是很重要的,因为在basemap的setup.py中有用到GEOS_DIR这个参数,照着一步步执行就可以了。 但是安装basemap,执行python setup.py install的时候报错, 出现“error:‘PyThreadState’ has no member named ‘exc_type’”这样的错误,之后就开始差错,网上有很多相关提示,有的说是cython的问题,有的说是gcc g++的问题,比较有用的参考如下: 但是都没有解决我的问题,也问了大神,说可能是版本的问题,让多尝试几个版本试试看,就开始尝试basemap1.0.7和1.1.0,pyproj、pyshp、cython的各种版本,还对比了linux下各种库版本与windows下版本的差别,尝试了一天都没有进展,一直报‘PyThreadState’ has no member named ‘exc_type’ 这个错误。 3、第二天不经意间注意到basemap的linux最新版本其实不是1.1.0,是1.2.1,之前被latest release给影响了,同时联想到windows下用的就是1.2.1,而一开始basemap1.1.0在python3.6下能安装成功,所以觉得应该是basemap版本问题。 然后熟练的重新安装basemap(感受一下熟练二字的心酸),没有遇到问题,只是在 python setup.py install 的时候报了一串红字,说gzip什么的,但是没有error。 然后尝试跑basemap的example,结果提示“No module named 'mpl_toolkits.basemap'”,然后看了一下linux的anaconda里面mpl_toolkits的文件夹,与windows中对比果然没有basemap的文件夹,这个地方我怀疑是我刚才报红字,解压的问题,但是我也没管,直接从windows下复制了basemap文件夹过来。 再尝试运行example就没问题了,再尝试跑自己的程序也没问题。 至此彻底搞定! 总结下来主要问题是python3.6 对应basemap1.1.0,python3.7对应basemap1.2.1,python3.7不能对应低版本的basemap,至于3.6能不能对应高版本的basemap就不知道了,回头再尝试一下。 再顺便说一下windows下装basemap,好像没遇到啥困难,下载下来basemap-1.2.1的whl,直接装就可以了,提示什么错误就再配合装其他的库如pyproj、pyshp等够了,环境主要依靠anaconda。
|