开发者社区 问答 正文

通过conda安装geopandas迫使我删除basemap (windows 8)

我正在尝试将geopandas安装到一个虚拟环境中,以便为脚本实现新代码,该脚本已经依赖于地球上最难安装的东西basemap。不幸的是,当我试图安装吉奥邦达时,conda似乎坚持要删除这个被抛弃的包。它还需要大量的更新,这在历史上对旧的脚本来说是非常糟糕的,通常会完全破坏它们。 问题是,菲奥娜,我可以做整个pip安装的车轮文件,但无论如何,这不是一个可怕的混乱,因为它通常是这样吗? 以下是conda在我尝试安装地质公园时说的话:

The following NEW packages will be INSTALLED:

    click:           7.0-py_0
    click-plugins:   1.1.1-py_0
    cligj:           0.5.0-py37_0
    curl:            7.67.0-h2a8f88b_0
    expat:           2.2.5-he025d50_0
    fiona:           1.8.4-py37h22081e2_0
    freexl:          1.0.5-hfa6e2cd_0
    gdal:            2.3.3-py37hdf43c64_0
    geopandas:       0.6.1-py_0
    hdf4:            4.2.13-h712560f_2
    kealib:          1.4.7-h07cbb95_6
    krb5:            1.16.4-hc04afaa_0
    libboost:        1.67.0-hd9e427e_4
    libcurl:         7.67.0-h2a8f88b_0
    libgdal:         2.3.3-h10f50ba_0
    libkml:          1.3.0-he5f2a48_4
    libnetcdf:       4.6.1-h411e497_2
    libpq:           11.2-h3235a2c_0
    libspatialindex: 1.9.3-h33f27b4_0
    libspatialite:   4.3.0a-hc36aec2_19
    libssh2:         1.8.2-h7a1dbc1_0
    munch:           2.5.0-py_0
    pcre:            8.43-ha925a31_0
    rtree:           0.8.3-py37_0
    shapely:         1.6.4-py37h222a598_0
    xerces-c:        3.2.2-ha925a31_0

The following packages will be REMOVED:

    basemap:         1.2.0-py37h4e5d7af_0

The following packages will be UPDATED:

    ca-certificates: 2019.1.23-0            --> 2019.11.27-0
    certifi:         2019.3.9-py37_0        --> 2019.11.28-py37_0
    geos:            3.6.2-h9ef7328_2       --> 3.7.1-h33f27b4_0
    openssl:         1.1.1b-he774522_1      --> 1.1.1d-he774522_3
    vs2015_runtime:  14.15.26706-h3a45250_0 --> 14.16.27012-hf0eaf9b_1

Proceed ([y]/n)?

问题来源StackOverflow 地址:/questions/59386029/installing-geopandas-through-conda-forces-me-to-remove-basemap-windows-8

展开
收起
kun坤 2019-12-25 22:09:02 787 分享 版权
阿里云 AI 助理回答

在面对这样的问题时,你有几个选择来尝试避免删除basemap包或最小化对现有环境的潜在破坏:

  1. 创建一个新的虚拟环境:如果你担心当前环境中的依赖关系会被破坏,最安全的做法是创建一个新的虚拟环境专门为geopandas和相关库使用。这样,你可以保持一个环境用于旧脚本(包含basemap),另一个环境用于新需求(如geopandas)。使用以下命令创建并激活新环境:

    conda create -n new_env python=3.x
    conda activate new_env
    conda install geopandas
    
  2. 使用pip安装basemap:如果conda坚持要移除basemap,而你又需要它,可以考虑在同一个环境中用pip安装basemap。但请注意,这可能会导致版本冲突或不兼容的问题。首先,确保你的环境已经激活,然后尝试:

    pip install basemap
    
  3. 手动管理依赖:查看geopandasbasemap的依赖项,尝试理解为什么conda想要移除basemap。有时候,是因为两个包依赖于不同版本的相同库,导致冲突。你可以尝试单独更新或降级这些冲突的库,以找到一个两者都能接受的版本组合。

  4. 使用环境yaml文件:为了更精确地控制环境中的包及其版本,你可以先导出当前环境的配置到一个yaml文件,然后编辑这个文件以添加geopandas,同时明确指定不要卸载basemap。之后,使用这个yaml文件创建或更新环境。这要求你手动解决任何依赖冲突。

  5. 寻找替代方案:考虑到basemap已经被视为过时,探索是否有其他库可以替代basemap的功能,比如cartopy,它通常与geopandas配合得更好,并且维护得更活跃。

  6. 直接使用wheel文件安装:虽然你提到可以使用pip从wheel文件安装geopandas,但这确实可能引入依赖混乱,特别是当涉及到像GDAL这样的底层库时。不过,如果你决定走这条路,请确保下载与你的Python版本和操作系统匹配的wheel文件,然后使用pip安装:

    pip install path/to/geopandas_wheel.whl
    

每种方法都有其优缺点,关键在于平衡新功能的需求与保持现有系统稳定性的需要。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答