如何从 conda.yaml 中的 GitLab 注册表安装自定义包

jol*_*cat 5 pypi anaconda

我在 GitLab 存储库上创建了一个自定义 python 包,我可以在本地终端中使用以下 pip 命令成功安装<>该包(带有 的术语表示在运行命令之前需要替换的变量):

pip install <packagename> --extra-index-url https://<access_token_name>:<access_token>@gitlab.com/api/v4/projects/24/packages/pypi/simple
Run Code Online (Sandbox Code Playgroud)

但是,我的限制是我需要从使用conda.yaml文件创建的 anaconda 环境安装此包。该文件的示例如下所示。

name: test
channels:
  - defaults
dependencies:
  - python=3.8
  - pip
  - pip:
    - pandas==1.2.4
    - numpy==1.20.2

Run Code Online (Sandbox Code Playgroud)

我的问题:如何将自定义包添加到conda.yaml?似乎conda.yaml允许以格式指定依赖项<packagename>==<package_version>,但不允许使用pip install像上面这样的自定义命令。

我尝试添加- "--extra-index-url https://<access_token_name>:<access_token>@gitlab.com/api/v4/projects/24/packages/pypi/simple"到依赖项(作为 下的项目- pip:),然后可以使用 成功创建 conda 环境conda env create -f conda.yaml,即执行此命令时没有错误消息。但是,我的软件包<packagename>实际上并未安装,即它没有列出conda list,并且无法导入该软件包(激活新环境后)。

Hel*_*der 0

我认为您只需git+https://{access_token_name}:{access_token}@gitlab.com/{your_gitlab_username}/{repository_name}.git在 yaml 文件中提供即可添加 git 包。

测试.yaml

name: test
channels:
  - defaults
dependencies:
  - python=3.8
  - pip
  - pip:
    - git+https://{access_token_name}:{access_token}@gitlab.com/{your_gitlab_username}/{repository_name}.git
Run Code Online (Sandbox Code Playgroud)

然后运行:

conda env create --file=test.yaml
Run Code Online (Sandbox Code Playgroud)