matplotlib的工具包basemap安装失败的解决

在Mac OS环境下,使用Python 3.6.4和virtualenv进行matplotlib的basemap安装时遇到问题。首先需要安装numpy, matplotlib, pyproj。下载basemap源码后,安装geos成功,但安装basemap时出现编译错误。错误源于setup.py中的一个bug,导致路径添加错误。解决方案是修改setup.py中涉及路径添加的代码行。" 131771170,8167447,Spring Security 6.x 扩展:匿名认证详解,"['spring security', 'spring boot', '权限管理']
摘要由CSDN通过智能技术生成

原文网址:https://www.fsanmartin.co/mac-install-matplotlib-basemap-on-virtualenv/

安装环境mac os,python3.6.4,虚拟环境virtualenv

basemap安装前需要安装numpy, matplotlib, pyproj,用pip安装就行

先从basemap下载source文件,解压文件,先安装其中的geos。

tar zxvf basemap-1.1.0.tar.gz
cd basemap-1.1.0/geos-3.3.3/

安装geos

$export GEOS_DIR=/usr/local/Cellar/geos
$./configure --prefix=$GEOS_DIR
$make; make install

等待安装完成后,我们直接跳到安装basema

~/basemap-1.1.0 » python setup.py install

发现安装失败,失败信息如下:

  1. compile options: '-I/usr/local/include -I['/Users/myself/.virtualenvs/basemap-virtualenv/lib/python3.6/site-packages/numpy/core/include'] -I/Users/myself/.virtualenvs/basemap-virtualenv/lib/python3.6/site-packages/numpy/core/include -I/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c'
  2. clang: src/_geoslib.c
  3. zsh:1: no matches found: -I[/Users/myself/.virtualenvs/basemap-virtualenv/lib/python3.6/site-packages/numpy/core/include]
  4. zsh:1: no matches found: -I[/Users/myself/.virtualenvs/basemap-virtualenv/lib/python3.6/site-packages/numpy/core/include]
  5. error: Command "clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/include -I['/Users/myself/.virtualenvs/basemap-virtualenv/lib/python3.6/site-packages/numpy/core/include'] -I/Users/myself/.virtualenvs/basemap-virtualenv/lib/python3.6/site-packages/numpy/core/include -I/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c src/_geoslib.c -o build/temp.macosx-10.12-x86_64-3.6/src/_geoslib.o -MMD -MF build/temp.macosx-10.12-x86_64-3.6/src/_geoslib.o.d" failed with exit status 1

发现是这一句错误

clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes compile options: '-I/usr/local/include -I['/Users/myself/.virtualenvs/basemap-virtualenv/lib/python3.6/site-packages/numpy/core/include'] ...

原因是setup.py中的一个bug,如果你读了错误信息,你会发现我们再添加一个路径(-l),但是我们传递的是一个只含一个string的列表。在setup.py中找到下面的一句。

geos_include_dirs = [os.path.join(GEOS_dir,'include'),inc_dirs]

修改为

geos_include_dirs = [os.path.join(GEOS_dir,'include'),inc_dirs[0]]
然后再执行python setup.py install就能正常安装。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值