使用environment.yaml在conda中使用pip将pip升级到最新版本



我正试图使用environment.yaml创建一个环境,由于某种原因,conda在我的环境中安装的默认pip需要很长时间来处理依赖关系。

出于这个原因,我试图以某种方式升级conda环境文件中的pip版本。

name: temp_env
channels:
- pytorch
- defaults
dependencies:
- python=3.7
- pytorch::pytorch=1.11.0
- pytorch::torchvision=0.12.0
- pytorch::cpuonly
- pip
- pip: 
- -e '.[dev]'

本次安装附带的pip版本是pip 21.2.2。我正在尝试将pip升级到最新版本,目前为22.0.4。我可以编写一个bash脚本来安装没有pip部分的conda环境,然后在其中安装包,但这并不理想。我正试图提出一个只使用YAML文件的解决方案。

我试过这个:

- pip>=22.0.4
- pip: 
- -e '.[dev]'

但显然这个版本还没有出现在康达的主要频道上。我也试过:

- pip
- pip:
- -U pip
- -e '.[dev]'

但这也不起作用,并引发错误。

['/path/to/miniconda3/envs/temp_env/bin/python','-m','pip','install','-U','-r','/path_to/folder/condaenv.0kdmzdvh.requirements.txt']

Pip子流程错误:错误:无效的要求:";pip"-U";

conda-forge通道有它。因此,

name: temp_env
channels:
- pytorch
- conda-forge
dependencies:
- python=3.7
- pytorch::pytorch=1.11.0
- pytorch::torchvision=0.12.0
- pytorch::cpuonly
- pip>=22.0.4
- pip: 
- -e '.[dev]'

此外,从错误中可以看出,当Conda运行pip install命令时,它已经添加了一个-U。然而,主要的问题是,升级pip然后使用升级后的pip意味着要运行两个连续的pip install命令,而单从YAML是无法做到这一点的。pip:列表中的所有内容都被复制到requirements.txt,并作为一个指令有效地传递到pip install -U

我认为您需要执行pip install -U而不是pip -U

最新更新