Setup-miniconda: 无法激活环境

创建于 2020-11-13  ·  11评论  ·  资料来源: conda-incubator/setup-miniconda

我无法简单地激活base环境。 这是我的食谱中的一个片段:

    - uses: conda-incubator/setup-miniconda<strong i="7">@v2</strong>
      with:
        auto-update-conda: true
        auto-activate-base: true
        activate-environment: base
    - run: conda info
    - run: conda env update -n base --file environment.yaml

我越来越

Error: To activate "base" environment use the "auto-activate-base" action input!

我怎样才能改进它以实际工作?

question

最有用的评论

很棒的@goanpeca ,感谢您的帮助和公关!!

如果我可以在关闭此问题时就自述文件提供个人经验:

  • 记录我的案例的默认环境名称是test会很棒,我认为我在任何地方都找不到。
  • 就个人而言,它会(已经)帮助(编辑)我有一些完整的典型示例(例如 Python 和 CMake 测试)。 那么我遇到的一些陷阱对我来说会更明显(当然,一切都在那里,只是一个人不时是一个懒惰的读者,当事情出现在“你的面前”时它会有所帮助)。

所有11条评论

用。。。来代替:

    - uses: conda-incubator/setup-miniconda<strong i="6">@v2</strong>
        with:
          environment-file: environment.yaml
          activate-environment: <name stated in environment.yaml>
          auto-activate-base: false
    - run: conda info

谢谢@jaimergp 。 如果我没有在environment.yaml指定环境名称怎么办?

你不能在文件中添加任何名称吗? 如果它不在你的仓库中,也许在使用setup-miniconda之前用echo "name: test" >> environment.yaml修补它?

@jaimergp当然我可以添加 CI 配方本身。 我一般不喜欢这样做,我认为在环境文件中指定名称是不必要的限制,据我所知,conda 不指定它是完全没问题的。

更广泛地说,这个动作不应该也能处理我的设置吗?

@tdegeus感谢您的报告。 @jaimergp我现在不记得是否我们默认将名称“test”添加到 yaml 文件中,如果名称不在那里。

我们需要仔细检查。

在这种情况下,“默认”环境名称似乎确实是test @goanpeca 。 但是使用上面的命令我仍然没有得到正确激活的环境。 以下是https://github.com/tdegeus/shelephant/pull/12的详细信息

    steps:
    - uses: actions/checkout<strong i="9">@v2</strong>
    - uses: conda-incubator/setup-miniconda<strong i="10">@v2</strong>
      with:
        environment-file: environment.yaml
        activate-environment: test
        auto-activate-base: false
    - run: conda info

最后一条命令输出:

      active environment : None
        user config file : /home/runner/.condarc
  populated config files : /home/runner/.condarc
           conda version : 4.8.3
     conda-build version : not installed
          python version : 3.8.3.final.0
        virtual packages : __glibc=2.27
        base environment : /usr/share/miniconda  (writable)
            channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                           https://conda.anaconda.org/conda-forge/noarch
                           https://repo.anaconda.com/pkgs/main/linux-64
                           https://repo.anaconda.com/pkgs/main/noarch
                           https://repo.anaconda.com/pkgs/r/linux-64
                           https://repo.anaconda.com/pkgs/r/noarch
           package cache : /home/runner/conda_pkgs_dir
        envs directories : /usr/share/miniconda/envs
                           /home/runner/.conda/envs
                platform : linux-64
              user-agent : conda/4.8.3 requests/2.23.0 CPython/3.8.3 Linux/5.4.0-1031-azure ubuntu/18.04.5 glibc/2.27
                 UID:GID : 1001:116
              netrc file : None
            offline mode : False

实际上,如果我查看在environment.yaml中安装软件包的行,它会输出

# To activate this environment, use
#
#     $ conda activate test
#
# To deactivate an active environment, use
#
#     $ conda deactivate

提示没有激活环境。

@tdegeus由于 github 操作的工作方式,您需要为不同 shell 的 README 中所述的操作指定额外的参数。

      - name: Conda info
        shell: bash -l {0}
        run: conda info

如果您不使用shell: bash -l {0}假设您正在使用 bash,那么该操作将无法正确激活环境。

这是一个已知限制,您可以在此处阅读更多

@goanpeca所以我必须为我想在其中使用环境的每一行都这样做?

之前,我使用了一些没有此限制的操作:

    - uses: s-weigand/setup-conda<strong i="8">@v1</strong>
    - run: conda --version
    - run: conda env update -n base --file environment.yaml

@tdegeus

所以我必须为我想要使用环境的每一行都这样做?

是的,或者如果您的所有 stepps 都使用相同的 shell,则使用默认 shell,如上所述:
https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow -syntax-for-github-actions#jobsjob_iddefaultsrun

之前,我使用了一些没有此限制的操作:

是的,该操作未正确激活环境。

@tdegeus https://github.com/conda-incubator/setup-miniconda/pull/96添加了我在评论中解释的信息。

我想我们可以结束这个问题。 如果不是这种情况,请告诉我们我们还可以做些什么来改进操作。

再次感谢你的反馈 :-)

很棒的@goanpeca ,感谢您的帮助和公关!!

如果我可以在关闭此问题时就自述文件提供个人经验:

  • 记录我的案例的默认环境名称是test会很棒,我认为我在任何地方都找不到。
  • 就个人而言,它会(已经)帮助(编辑)我有一些完整的典型示例(例如 Python 和 CMake 测试)。 那么我遇到的一些陷阱对我来说会更明显(当然,一切都在那里,只是一个人不时是一个懒惰的读者,当事情出现在“你的面前”时它会有所帮助)。
此页面是否有帮助?
0 / 5 - 0 等级

相关问题

magland picture magland  ·  4评论

bollwyvl picture bollwyvl  ·  12评论

mrmundt picture mrmundt  ·  12评论

volpatto picture volpatto  ·  12评论

bradyrx picture bradyrx  ·  11评论