使用Conda在HPC上创建指定环境时求解卡顿的解决办法
解决Conda环境创建卡在求解阶段的方案
针对你遇到的旧版本依赖包环境创建卡住的问题,以下是几个无需更新Conda核心版本的可行方案:
1. 优化环境配置文件的源与依赖声明
在YAML中明确指定源并设置优先级,同时对部分非核心包放宽版本限制,降低求解器的复杂度:
name: p2b1 channels: - defaults - conda-forge channel_priority: strict dependencies: - python=3.7.5 - numpy=1.19.5 - tensorflow-gpu=2.2.0 - scipy>=1.5.3,<1.6 - keras=2.4.3 - h5py>=2.10.0,<3.0 - pandas>=1.2.0,<1.3 - scikit-learn>=0.24.0,<0.25 - tqdm=4.56.0 - matplotlib>=3.3.3,<3.4 - numba=0.52.0 - astropy=4.2 - patsy=0.5.1 - statsmodels>=0.12.1,<0.13
channel_priority: strict会让Conda优先从指定源的顺序中选择包,减少跨源依赖冲突;对部分包使用版本区间而非精确版本,给求解器更多适配空间。
2. 分阶段创建环境
避免一次性求解所有依赖,分步骤逐步添加包:
- 首先创建基础环境:
conda create -n p2b1 python=3.7.5 numpy=1.19.5 tensorflow-gpu=2.2.0 -c defaults -c conda-forge - 激活环境后,分组安装剩余包:
conda activate p2b1 conda install scipy=1.5.3 keras=2.4.3 h5py=2.10.0 -c defaults -c conda-forge conda install pandas=1.2.0 scikit-learn=0.24.0 tqdm=4.56.0 -c defaults -c conda-forge conda install matplotlib=3.3.3 numba=0.52.0 astropy=4.2 patsy=0.5.1 statsmodels=0.12.1 -c defaults -c conda-forge
分阶段安装能大幅降低单次求解的依赖复杂度,避免求解器陷入死循环。
3. 使用Mamba替代Conda求解器
Mamba是Conda的替代求解器,速度更快且对旧版本依赖的处理更高效,无需更新Conda核心即可安装使用:
- 先在base环境安装mamba:
conda install -n base mamba -c conda-forge - 用mamba创建环境:
mamba env create -f your_environment.yml
Mamba的求解算法能更快处理复杂的依赖关系,解决卡住的问题。
4. 清理Conda缓存
缓存的旧包或损坏的索引可能导致求解异常,清理后再尝试:
conda clean -a
该命令会删除所有未使用的包和缓存索引,确保Conda从源拉取最新的依赖信息。
内容的提问来源于stack exchange,提问作者Eventual V
相关产品推荐
相关产品推荐

