本地、Google Colab及Renkulab安装Solaris失败求解决
解决Solaris安装中GDAL Wheel构建失败的思路
1. 锁定GDAL与Solaris兼容的版本
Solaris对GDAL版本存在严格依赖,不要随意安装最新版。先查看Solaris仓库的setup.py或environment.yml文件,确认指定的GDAL版本(比如旧版Solaris通常要求3.0.x~3.1.x区间):
- 通过conda安装指定版本:
conda install gdal=3.1.4 - 验证安装结果:
gdal-config --version,确保输出版本与要求一致
2. 手动配置GDAL编译环境变量
pip构建GDAL wheel时需要定位系统库路径,提前设置环境变量:
- Linux/macOS终端:
export CPLUS_INCLUDE_PATH=/usr/include/gdal export C_INCLUDE_PATH=/usr/include/gdal - Windows PowerShell:
$env:CPLUS_INCLUDE_PATH = "C:\Program Files\GDAL\include" $env:C_INCLUDE_PATH = "C:\Program Files\GDAL\include" $env:PATH += ";C:\Program Files\GDAL\bin"
设置完成后再尝试安装Solaris或GDAL wheel
3. 修复conda环境安装失败问题
作者推荐的conda环境失效,大概率是conda源优先级或依赖冲突问题,换用conda-forge源重新创建:
conda config --add channels conda-forge conda config --set channel_priority strict conda create -n solaris_env --file https://raw.githubusercontent.com/CosmiQ/solaris/master/environment.yml conda activate solaris_env pip install solaris --no-deps
添加--no-deps参数避免pip重复安装conda已解决的依赖
4. 克隆仓库后指定GDAL路径安装
克隆仓库后调用失败时,先确保安装依赖时明确指定GDAL路径:
git clone https://github.com/CosmiQ/solaris.git cd solaris # 先安装兼容版本的GDAL并指定编译路径 pip install gdal==<兼容版本号> --global-option=build_ext --global-option="-I/usr/include/gdal" --global-option="-L/usr/lib" # 再安装solaris开发版 pip install -e . --no-deps
5. 针对Colab/Renkulab的特殊处理
- Colab:先卸载预装的不兼容GDAL,再安装指定版本:
完成后再执行Solaris安装命令!apt-get remove -y gdal-bin libgdal-dev !apt-get install -y libgdal-dev=3.1.4+dfsg-2~focal0 !pip install gdal==3.1.4 - Renkulab:在项目Dockerfile中提前安装系统级GDAL依赖:
RUN apt-get update && apt-get install -y libgdal-dev gdal-bin=3.1.4+dfsg-2~focal0 RUN pip install gdal==3.1.4 RUN pip install solaris
内容的提问来源于stack exchange,提问作者Milap
相关产品推荐
相关产品推荐

