使用conda安装geopandas,找不到依赖项libgcc-ng

时间:2019-05-17 16:13:42

标签: python conda geopandas

我正在尝试使用conda安装geopandas。

我创造了一个新鲜的环境

conda create --name gp python=2 

然后尝试安装geopandas

conda install geopandas

哪个返回

  

错误:找不到有关Geopandas的某些依赖项:rtree,   libspatialindex> = 1.9.0,<1.10.0a0,libgcc-ng> = 7.3.0,matplotlib-base

     

您是说其中之一吗?

geopandas, pandas, biopandas
     

您是说其中之一吗?

rtree, r-tree, r-htree
     

您是说其中之一吗?

matplotlib-base, matplotlib-venn, matplotlib

所以我已经安装了libgcc-ng

conda install -c anaconda libgcc-ng 

然后尝试安装libspatialindex

conda install -c conda-forge libspatialindex 

但这返回:

  

错误:找不到libspatialindex的某些依赖项:libgcc-ng   > = 7.3.0

1 个答案:

答案 0 :(得分:1)

如果新环境的重点是加入geopandas,那么让Conda从一开始就知道这一点,它可以预先解决依赖关系:

conda create -n gp python=2 geopandas

但是,正如@martinfleis指出的那样,您可能仍然存在频道优先级问题。在linux-64平台上进行测试,我可以单独从geopandas=0.4.0频道安装anaconda,但是要同时安装geopandas=0.5.0anaconda ,并且可以以任何优先级提供。在@martinfleis的测试中,仅赋予conda-forge优先级有效。因此,

conda-forge

将是共识命令。


关于渠道优先级的说明

可以在配置级别更改通道优先级,如@martinfleis对OP的注释,在这种情况下,可以这样做,以使上面的第一个命令与第二个命令完全一样。但是,仅应进行这样的更改,使其确实与您的频道偏好设置相吻合-而不是进行特定的安装。

如上面第二条命令所示,替代方法是在conda create -n gp -c conda-forge -c defaults --override-channels python=2 geopandas create命令中临时指定通道优先级。在该命令中,install优先于-c conda-forge-c defaults标志会禁用您在永久配置设置中可能拥有的其他任何渠道。

此外,仍然可以通过在软件包名称前面加上--override-channels来指定来自特定渠道的单个软件包。例如,如果在第二个命令中,我仍然想从<channel>::派生Python,它将是defaults

如果要指定的异常有多个,那么可能是时候考虑从YAML安装了。