Conda安装Basemap 1.2.1遇依赖冲突及Proj无EPSG问题求助
解决Basemap升级至1.2.1时的依赖冲突及proj缺少epsg文件问题
在Win10 64位、Python3.7.3的非根conda环境里折腾Basemap确实容易碰到这类依赖和文件缺失的问题,我来给你拆解下原因和可行的解决方案:
问题根源
你遇到的两个核心问题:
- Basemap无法升级到1.2.1:即使把conda-forge设为最高优先级,现有环境里的其他包(比如numpy、matplotlib等)的版本可能和Basemap 1.2.1的要求不兼容,conda为了保证环境稳定,会自动跳过升级。
- llvm-meta、clangdev依赖冲突:这俩包你没装过,但Basemap 1.2.1依赖的proj或其他底层库在Win10+Python3.7的组合下,需要这些编译相关的包来构建,而你的环境里现有包的版本和这些依赖的要求冲突,导致安装失败。
可行解决方案
方案1:新建隔离环境安装(最推荐)
避免现有环境的包版本纠缠,直接创建一个干净的环境专门装Basemap 1.2.1:
# 创建新环境,指定Python版本和conda-forge源 conda create -n basemap_env python=3.7.3 -c conda-forge # 激活环境 conda activate basemap_env # 安装Basemap 1.2.1 conda install basemap=1.2.1 -c conda-forge
这个方式下conda会自动处理所有依赖,包括确保proj的epsg文件完整,不会出现缺失问题。
方案2:修复现有环境的依赖冲突
如果不想放弃现有环境,可以尝试强制清理后重新安装:
- 先移除当前的Basemap及相关依赖:
conda remove basemap basemap-data-hires proj --force - 清理conda的缓存,避免旧包干扰:
conda clean -a - 强制只从conda-forge源安装Basemap 1.2.1,跳过其他源的包:
这个命令会让conda只从conda-forge拉取所有依赖,避免和默认源的包版本冲突。conda install -c conda-forge --override-channels basemap=1.2.1
方案3:手动补全epsg文件(临时 workaround)
如果暂时无法升级Basemap,也可以手动解决epsg文件缺失的问题:
- 找到你当前环境中proj的安装路径(一般是
你的conda环境路径\Lib\site-packages\proj或者和basemap关联的mpl_toolkits\basemap\data\proj) - 下载对应proj版本的epsg文件(和你当前proj版本匹配),放到上述路径的epsg文件夹里即可。
问题反馈的GitHub仓库
如果尝试上述方案后仍有问题,建议到以下仓库提交issue:
- Basemap Conda-Forge Feedstock:这个仓库专门维护Basemap的conda包,依赖冲突、版本升级问题在这里反馈最有效。
- Basemap官方仓库:如果是epsg文件这类Basemap自身的资源缺失问题,可以在这里提交反馈。
附conda list输出(请替换为你的实际内容)
# 粘贴你的conda list输出示例: # packages in environment at C:\Users\YourName\miniconda3\envs\your_env: # # Name Version Build Channel python 3.7.3 h8c8aaf0_0 numpy 1.19.2 py37hadc3359_0 matplotlib 3.3.4 py37h03978a9_0 ...
内容的提问来源于stack exchange,提问作者Khris
相关产品推荐
相关产品推荐

