ubuntu16.0安装basemap报错解决方案

basemap安装报错解决方案

为了使用basemap,需要我们安装basemap和pyproj两个包。
其中可以用pip安装pyproj这个包,但是安装basemap这个子包会报错。
因此需要在pypi上下载源包进行安装。pypi的basemap下载地址
安装方法大家都知道的:切换到下载路径,pip install 包名

如果出现以下错误是因为没有安装geos环境。需要我们下载安装geos。
github上的geos位置
在这里插入图片描述
安装geos方法如下,参考的是kmblack1的博客。(第一次引用他人博客,不知道是不是附上原网址就行了,emmm)

tar -xf geos-3.7.0beta1.tar.gz
cd geos-3.7.0beta1
mkdir build
cd build
#指定安装位置
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/geos ..
#安装到系统默认的位置
cmake ..

make
sudo make install

#卸载
sudo make uninsall
--------------------- 
作者:kmblack1 
来源:CSDN 
原文:https://blog.csdn.net/kmblack1/article/details/81234291 
版权声明:本文为博主原创文章,转载请附上博文链接!

安装完geos后,继续安装basemap源包,如果依然报以下错误
在这里插入图片描述
请打开basemap的压缩文件,找到根目录下的setup.py文件,用文本编辑器打开如下:
在我注释的两处的某一处添你安装的geos的lib文件夹的路径即可。

# set GEOS_dir manually here if automatic detection fails.
#在这里添加安装目录
    GEOS_dir = None

if GEOS_dir is None:
    # if GEOS_dir not set, check a few standard locations.
    #或在这里添加安装目录
    GEOS_dirs = [os.path.expanduser('~'),'/usr','/usr/local','/sw','/opt','/opt/local','/usr/local/geos']
    for direc in GEOS_dirs:
        geos_version = checkversion(direc)
        sys.stdout.write('checking for GEOS lib in %s ....\n' % direc)
        if geos_version is None or geos_version < '"3.1.1"':
            continue
        else:
            sys.stdout.write('GEOS lib (version %s) found in %s\n' %\
                    (geos_version[1:-1],direc))
            GEOS_dir = direc
            break
else:
    geos_version = checkversion(GEOS_dir)

整个过程完毕。
成功安装如下
在这里插入图片描述很遗憾的是在运行程序是导入包依然会报错,
在这里插入图片描述
说上述路径下的libstdc++.so.6文件版本太老。于是需要跟新,由于我的ubuntu为了方便安装的是anaconda环境,可以利用conda install libgcc更新。

安装个包,一波三折,所以记录一下心得,免得以后换机器了又掉坑里。


版权声明:本文为senjie_wang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。