关于conda在创建虚拟环境时使用env.yaml安装pip的开源git包失败的解决办法

发布时间 2023-04-26 15:21:32作者: 海_纳百川

以下env.yaml配置为例:

name: alpaca
channels:
  - pytorch
  - defaults
dependencies:
  - python=3.8.5
  - pip=20.3
  - cudatoolkit=11.3
  - pytorch=2.0.0
  - numpy=1.19.2
  - pip:
    - datasets
    - loralib 
    - sentencepiece
    - accelerate
    - bitsandbytes
    - gradio
    - appdirs
    - -e git+https://github.com/huggingface/transformers.git@main#egg=transformers
    - -e git+https://github.com/huggingface/peft.git@main#egg=peft

我使用conda env create -f environment.yaml

进行创建环境时,最后一个-e git+https://github.com/huggingface/peft.git@main#egg=peft没有执行成功,但是虚拟环境还是创建了,这个时候的环境是不完整的,此时如果删掉重新创建肯定会重复耗时,是很不划算的,这个时候我们就可以进入环境后重新对失败的命令进行操作,但是执行方式有些区别,如果想要完全实现相同的操作,我们需要知道失败的命令在做哪些工作:

在conda环境创建时的yaml文件中,pip 下的 -e git+https://github.com/huggingface/transformers.git@main#egg=transformers 命令表示从 Github 上获取 transformers 库的最新版本,并将其安装到当前环境中。具体含义如下:

-e:表示使用开发模式进行安装,将软件包安装为可编辑模式,以便在本地对其进行修改和调试。
git+https://github.com/huggingface/transformers.git@main:表示从 Github 上获取 transformers 库的最新版本,并且使用 Git 协议进行下载。
#egg=transformers:表示将软件包命名为 "transformers",以便在安装时能够识别它,并确保其与其他软件包不发生冲突。
通过执行此命令,可以在当前环境中安装并使用最新版本的 transformers 库。

按照上面的说法,所以我们第一步是clone项目:

git clone https://github.com/huggingface/transformers.git

进入 transformers 文件夹,并执行以下命令来安装 transformers 库:

pip install -e .

这将使用 pip 命令以可编辑模式进行安装,以便在本地对其进行修改和调试。

最后,验证 transformers 库是否已成功安装。可以在 Python 解释器中执行以下代码:


import transformers

print(transformers.__version__)

如果输出 transformers 库的版本号,则表示安装成功。