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 、助けとPRに感謝します!!

この質問を閉じるときに、Readmeで個人的な経験をすることができます。

  • 私の場合のデフォルトの環境名が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

ありがとう@jaimergpenvironment.yamlで環境名が指定されていない場合はどうなりますか?

ファイルに名前を追加できませんか? それはあなたのレポでない場合は、多分にそれをパッチecho "name: test" >> environment.yaml使用する前に、 setup-miniconda

@jaimergp確かにCIレシピ自体に追加できます。 私は一般的にそれをするのは好きではありません、私は環境ファイルで名前を指定することは不必要に制限されていると思います、そして私が知る限り、condaがそれを指定しないことは完全に問題ありません。

もっと広く言えば、アクションは私のセットアップにも対処できるべきではありませんか?

こんにちは@tdegeusレポートをありがとう。 @jaimergp名前がyamlファイルにない場合、デフォルトで「test」という名前をyamlファイルに追加すると、今は思い出せません。

再確認する必要があります。

実際、「デフォルト」の環境名は、この場合は@goanpecatestようです。 しかし、上記のコマンドを使用しても、正しくアクティブ化された環境は得られません。 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アクションの仕組みのため、さまざまなシェルのREADMEで説明されているように、アクションに追加の引数を指定する必要があります。

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

bashを使用していると仮定してshell: bash -l {0}を使用しない場合、アクションは環境を正しくアクティブ化できません。

これは既知の制限です。詳細はこちらをご覧

@goanpecaでは、環境を使用するすべての行に対してこれを行う必要がありますか?

以前は、この制限がないアクションを使用しました。

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

@tdegeus

それで、私は環境を使いたいすべての行に対してそれをしなければならないでしょうか?

はい、または以下で説明するように、すべてのステップで同じシェルを使用する場合は、デフォルトのシェルを使用します。
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 、助けとPRに感謝します!!

この質問を閉じるときに、Readmeで個人的な経験をすることができます。

  • 私の場合のデフォルトの環境名がtestであることを文書化するのは素晴らしいことですが、どこにも見つからなかったと思います。
  • 個人的には、完全ないくつかの典型的な例(PythonやCMakeテストなど)があると(助けになります)。 そうすれば、私が遭遇した落とし穴のいくつかは私にはもっと明白だったでしょう(もちろん、すべてがそこにあります、それは時々怠惰な読者であり、物事が「あなたの顔に」提示されるときに役立ちます)。
このページは役に立ちましたか?
0 / 5 - 0 評価