我正在尝试将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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在面对这样的问题时,你有几个选择来尝试避免删除basemap
包或最小化对现有环境的潜在破坏:
创建一个新的虚拟环境:如果你担心当前环境中的依赖关系会被破坏,最安全的做法是创建一个新的虚拟环境专门为geopandas
和相关库使用。这样,你可以保持一个环境用于旧脚本(包含basemap),另一个环境用于新需求(如geopandas)。使用以下命令创建并激活新环境:
conda create -n new_env python=3.x
conda activate new_env
conda install geopandas
使用pip安装basemap:如果conda坚持要移除basemap,而你又需要它,可以考虑在同一个环境中用pip安装basemap。但请注意,这可能会导致版本冲突或不兼容的问题。首先,确保你的环境已经激活,然后尝试:
pip install basemap
手动管理依赖:查看geopandas
和basemap
的依赖项,尝试理解为什么conda想要移除basemap
。有时候,是因为两个包依赖于不同版本的相同库,导致冲突。你可以尝试单独更新或降级这些冲突的库,以找到一个两者都能接受的版本组合。
使用环境yaml文件:为了更精确地控制环境中的包及其版本,你可以先导出当前环境的配置到一个yaml文件,然后编辑这个文件以添加geopandas
,同时明确指定不要卸载basemap
。之后,使用这个yaml文件创建或更新环境。这要求你手动解决任何依赖冲突。
寻找替代方案:考虑到basemap
已经被视为过时,探索是否有其他库可以替代basemap
的功能,比如cartopy
,它通常与geopandas
配合得更好,并且维护得更活跃。
直接使用wheel文件安装:虽然你提到可以使用pip从wheel文件安装geopandas,但这确实可能引入依赖混乱,特别是当涉及到像GDAL这样的底层库时。不过,如果你决定走这条路,请确保下载与你的Python版本和操作系统匹配的wheel文件,然后使用pip安装:
pip install path/to/geopandas_wheel.whl
每种方法都有其优缺点,关键在于平衡新功能的需求与保持现有系统稳定性的需要。