使用yml文件创建Conda环境安装pip依赖提示pip版本异常
问题场景
通过yml配置文件创建Conda环境,运行到Installing pip dependencies步骤时,终端反复弹出提示:
"You are using pip version 10.0.1, however version 20.3.4 is available"
已尝试过执行pip install --upgrade pip将pip升级至22.1.2版本,也特意安装过提示提及的20.3.4版本pip,重新执行环境创建流程后问题依旧存在。
使用的yml配置文件内容如下:
name: rig channels: - kne # for pybox2d - pytorch - anaconda # for mkl - defaults dependencies: - pip #>= 22.0 - cython - ipython # technically unnecessary - joblib >= 0.9.4 - lockfile - mako >= 1.0.6 - matplotlib >= 2.0.2 - mkl >= 2018.0.2 # Need to add explicit dependence for pytorch - numba >= 0.35.0 - numpy >= 1.11.3 - path.py >= 10.3.1 - pybox2d >= 2.3.1 - python >= 3.5.2 - python-dateutil >= 2.6.1 - pytorch-cpu >= 0.4.1 - scipy >= 1.0.1 - patchelf - pip: - cloudpickle >= 0.5.2 - gym[all] >= 0.10.5 - gitpython >= 2.1.7 - gtimer >= 1.0.0b5 - pygame >= 1.9.2 - ipdb # technically unnecessary
补充说明:最初配置中为各软件包指定了固定版本,因出现依赖冲突报错,才改用>=版本匹配逻辑安装依赖。
根因说明
Conda通过yml创建环境时,会严格按照配置的channel顺序拉取对应依赖包,配置中未给pip指定明确的最低版本要求时,Conda会优先拉取channel内缓存的旧版pip(即10.0.1版本)来执行后续pip依赖的安装步骤。在其他环境或全局升级的pip版本不会介入当前新环境的创建流程,因此无论怎么提前升级pip,只要走yml一键创建流程,都会触发旧版pip的版本提示。
可行解决方案
放弃通过yml一次性安装全部依赖的方式,新建空白Conda环境后,先通过Conda安装所有基础依赖,将环境内的pip升级到目标版本后,再通过pip逐个安装剩余的PyPI源依赖,即可彻底解决该问题。
内容的提问来源于stack exchange,提问作者Pouyan
相关产品推荐
相关产品推荐

