我正在尝试使用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
答案 0 :(得分:1)
如果新环境的重点是加入geopandas
,那么让Conda从一开始就知道这一点,它可以预先解决依赖关系:
conda create -n gp python=2 geopandas
但是,正如@martinfleis指出的那样,您可能仍然存在频道优先级问题。在linux-64
平台上进行测试,我可以单独从geopandas=0.4.0
频道安装anaconda
,但是要同时安装geopandas=0.5.0
和anaconda
,并且可以以任何优先级提供。在@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安装了。