LibMambaUnsatisfiableError: Encountered problems while solving: - package openblas-devel-0.2.20-h1

部署运行你感兴趣的模型镜像

对于:

conda install pytorch=1.9.0 torchvision cudatoolkit=10.2 -c pytorch -c nvidia

报错:

Solving environment: \ warning  libmamba Added empty dependency for problem type SOLVER_RULE_UPDATE                                                                                   failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package openblas-devel-0.2.20-h1e4b922_3 requires blas * openblas, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ cudatoolkit 10.2**  is requested and can be installed;
├─ openblas-devel is installable and it requires
│  ├─ blas * openblas, which can be installed;
│  └─ nomkl 3.0 0, which requires
│     └─ blas [* openblas|1.0 openblas], which can be installed;
├─ pin-1 is installable and it requires
│  └─ python 3.8.* , which can be installed;
└─ pytorch 1.9.0**  is not installable because there are no viable options
   ├─ pytorch 1.9.0 would require
   │  └─ blas * mkl, which conflicts with any installable versions previously reported;
   ├─ pytorch 1.9.0 would require
   │  └─ python >=3.6,<3.7.0a0 , which conflicts with any installable versions previously reported;
   ├─ pytorch 1.9.0 would require
   │  └─ python >=3.7,<3.8.0a0 , which conflicts with any installable versions previously reported;
   ├─ pytorch 1.9.0 would require
   │  └─ cudatoolkit >=11.1,<11.2 , which conflicts with any installable versions previously reported;
   └─ pytorch 1.9.0 would require
      └─ python >=3.9,<3.10.0a0 , which conflicts with any installable versions previously reported.

问题分析及解决办法:

对于新创建的conda虚拟环境(python=3.8),conda list:

# Name Version Build Channel _libgcc_mutex 0.1 main _openmp_mutex 5.1 1_gnu blas 1.0 openblas anaconda ca-certificates 2024.9.24 h06a4308_0 intel-openmp 2023.1.0 hdb19cb5_46306 ld_impl_linux-64 2.40 h12ee557_0 libffi 3.4.4 h6a678d5_1 libgcc-ng 11.2.0 h1234567_1 libgfortran-ng 11.2.0 h00389a5_1 anaconda libgfortran5 11.2.0 h1234567_1 anaconda libgomp 11.2.0 h1234567_1 libopenblas 0.3.21 h043d6bf_0 anaconda libstdcxx-ng 11.2.0 h1234567_1 mkl 2023.1.0 h213fc3f_46344 mkl-include 2023.1.0 h06a4308_46344 ncurses 6.4 h6a678d5_0 nomkl 3.0 0 anaconda openblas-devel 0.3.21 h06a4308_0 anaconda openssl 3.0.15 h5eee18b_0 pip 24.2 py38h06a4308_0 python 3.8.20 he870216_0 readline 8.2 h5eee18b_0 setuptools 75.1.0 py38h06a4308_0 sqlite 3.45.3 h5eee18b_0 tbb 2021.8.0 hdb19cb5_0 tk 8.6.14 h39e8969_0 wheel 0.44.0 py38h06a4308_0 xz 5.4.6 h5eee18b_1 zlib 1.2.13 h5eee18b_1

根据提供的 conda list 输出,当前环境中存在一些可能导致冲突的问题。以下是一些关键点:

  1. 存在 blasopenblas 库的不同版本

    • blas 被安装为 openblas(版本 1.0),同时还安装了 libopenblasopenblas-devel(版本 0.3.21)。这个可能会导致冲突,尤其是 PyTorch 和其他科学计算库通常依赖于某种形式的 blas
  2. nomkl 包的存在

    • nomkl 包的存在可能导致 mkl 库无法正常工作。PyTorch 1.9.0 依赖于 mkl 库,而 nomkl 会避免安装 mkl,这可能是问题的根源。
  3. Python 版本与 PyTorch 版本的兼容性

    • 你当前环境中的 Python 版本是 3.8.20,这个是 PyTorch 1.9.0 支持的版本,因此 Python 版本本身不是问题。

解决方案

我们可以采取以下步骤来解决这些依赖冲突问题。

1. 卸载 nomkl

首先,卸载 nomkl,因为它阻止了 mkl 库的安装,PyTorch 需要 mkl 库来支持某些操作。

bash

复制代码

conda remove nomkl
2. 卸载冲突的 blasopenblas-devel

blasopenblas 是与 mkl 竞争的库。卸载这些不必要的库,以避免它们与 mkl 冲突

conda remove blas openblas-devel libopenblas
3. 安装 mkl 相关的库

确保你安装了 mklmkl-include,这是 PyTorch 所需要的。

conda install mkl mkl-include
4. 重新安装 PyTorch 和相关包

现在,安装 PyTorch 和对应版本的 CUDA 工具包,确保没有其他依赖冲突。

conda install pytorch=1.9.0 torchvision cudatoolkit=10.2 -c pytorch -c nvidia


 

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

LibMambaUnsatisfiableError 通常出现在使用 Conda 或其衍生工具(如 Mamba)进行包管理时,依赖解析失败。当报告错误信息 `python-3.10.16-h4607a30_1 excluded by strict repo priority` 时,意味着所请求的包版本由于仓库优先级设置而被排除,无法满足依赖关系。 ### 错误原因分析 Conda 和 Mamba 使用仓库优先级(`strict repo priority`)机制来控制不同仓库中包的优先级。当多个仓库中存在相同名称但不同版本的包时,优先级较高的仓库中的包会被优先选择。如果启用了 `strict repo priority`,那么低优先级仓库中的包即使满足依赖,也会被排除[^1]。 具体到 `python-3.10.16-h4607a30_1` 被排除的情况,可能是由于以下原因: -Python 版本来自一个优先级较低的仓库。 - 高优先级仓库中存在不兼容的 Python 版本。 - 依赖链中某些包要求特定版本的 Python,但该版本在高优先级仓库中不可用。 ### 解决方案 #### 1. 检查当前仓库优先级设置 可以使用以下命令查看当前的仓库配置和优先级: ```bash conda config --show channels ``` 如果启用了 `strict repo priority`,可以通过以下命令禁用: ```bash conda config --set channel_priority flexible ``` 这将允许 Conda/Mamba 在解析依赖时更灵活地处理不同仓库中的包。 #### 2. 明确指定仓库来源 如果知道某个特定仓库中包含所需的 Python 版本,可以在安装命令中显式指定: ```bash mamba install -c conda-forge python=3.10.16 ``` 这样可以确保从指定仓库中获取包,绕过优先级冲突问题。 #### 3. 更新或降级 Python 版本 如果当前环境中无法找到兼容的 Python 版本,可以考虑更新或降级 Python 以满足依赖关系: ```bash mamba update python ``` 或 ```bash mamba install python=3.9 ``` #### 4. 创建新环境 有时,旧环境中的依赖关系过于复杂,难以解决冲突。可以尝试创建一个新环境,并在其中安装所需的包: ```bash mamba create -n new_env python=3.10.16 ``` 这将确保环境中的依赖关系更加清晰,避免历史遗留问题。 #### 5. 使用 `--no-channel-priority` 选项(Mamba 特有) Mamba 提供了 `--no-channel-priority` 选项,用于忽略仓库优先级限制: ```bash mamba install --no-channel-priority python=3.10.16 ``` 此选项可临时绕过仓库优先级设置,帮助解决依赖冲突。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值