Setup-miniconda: Probleme beim Aktivieren einer Umgebung

Erstellt am 13. Nov. 2020  ·  11Kommentare  ·  Quelle: conda-incubator/setup-miniconda

Ich habe Probleme, einfach die base Umgebung zu aktivieren. Hier ein Ausschnitt aus meinem Rezept:

    - 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

Ich erhalte

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

Wie kann ich es verbessern, damit es tatsächlich funktioniert?

question

Hilfreichster Kommentar

Super @goanpeca , danke für die Hilfe und die PR!!

Wenn ich eine persönliche Erfahrung in der Readme geben darf, während wir diese Frage schließen:

  • Es wäre toll zu dokumentieren, dass der Standardumgebungsname für meinen Fall test ist. Ich glaube, ich habe das nirgendwo gefunden.
  • Persönlich würde (hätte) es mir geholfen, ein paar typische Beispiele zu haben, die vollständig sind (zB ein Python- und ein CMake-Test). Dann wären mir einige der Fallstricke, auf die ich gestoßen bin, offensichtlicher gewesen (natürlich ist alles da, nur ist man ab und zu ein fauler Leser, und es hilft, wenn Dinge 'auf die Nase' gestellt werden).

Alle 11 Kommentare

Ersetzen mit:

    - 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

Danke @jaimergp . Was ist, wenn ich keinen Umgebungsnamen in environment.yaml ?

Können Sie der Datei keinen Namen hinzufügen? Wenn es nicht in Ihrem Repo ist, patchen Sie es vielleicht mit echo "name: test" >> environment.yaml bevor Sie setup-miniconda ?

@jaimergp Klar könnte ich das CI-Rezept selbst hinzufügen. Ich mache es im Allgemeinen nicht gerne, ich denke, es ist unnötig einschränkend, den Namen in der Umgebungsdatei anzugeben, und soweit ich weiß, ist es für Conda völlig in Ordnung, ihn nicht anzugeben.

Sollte die Aktion nicht auch mit meinem Setup umgehen können?

Hallo @tdegeus danke für den Bericht. @jaimergp Ich kann mich jetzt nicht daran erinnern, ob wir den Namen "test" standardmäßig zur yaml-Datei hinzufügen, wenn der Name nicht darin enthalten ist.

Wir müssen das überprüfen.

Es scheint tatsächlich, dass der 'Standard'-Umgebungsname test in diesem Fall @goanpeca ist . Aber mit den obigen Befehlen bekomme ich immer noch keine richtig aktivierte Umgebung. Hier sind die Details für 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

Der letzte Befehl gibt aus:

      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

In der Tat, wenn ich nach den Zeilen suche, die die Pakete in environment.yaml installieren, wird das ausgegeben

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

Dies deutet darauf hin, dass die Umgebung nicht aktiviert wurde.

@tdegeus Aufgrund der Funktionsweise von github-Aktionen müssen Sie zusätzliche Argumente für die Aktionen angeben, wie in der README-Datei für die verschiedenen Shells beschrieben.

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

Wenn Sie shell: bash -l {0} vorausgesetzt, Sie verwenden bash, kann die Aktion die Umgebungen nicht korrekt aktivieren.

Dies ist eine bekannte Einschränkung, Sie können hier mehr lesen

@goanpeca Das müsste ich also für jede Zeile tun, in der ich die Umgebung verwenden möchte?

Zuvor habe ich eine Aktion verwendet, die diese Einschränkung nicht hatte:

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

@tdegeus

Also müsste ich das für jede Zeile machen, in der ich die Umgebung nutzen möchte?

Ja oder verwenden Sie eine Standard-Shell, wenn alle Ihre Stepps die gleiche verwenden, wie auf:
https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow -syntax-for-github-actions#jobsjob_iddefaultsrun

Zuvor habe ich eine Aktion verwendet, die diese Einschränkung nicht hatte:

Ja, diese Aktion aktiviert Umgebungen nicht richtig.

@tdegeus https://github.com/conda-incubator/setup-miniconda/pull/96 fügt Informationen zu dem hinzu, was ich im Kommentar erklärt habe.

Ich denke, wir können das Thema schließen. Sollte dies nicht der Fall sein, teilen Sie uns bitte mit, was wir noch tun können, um die Aktion zu verbessern.

Danke nochmal für die Rückmeldung :-)

Super @goanpeca , danke für die Hilfe und die PR!!

Wenn ich eine persönliche Erfahrung in der Readme geben darf, während wir diese Frage schließen:

  • Es wäre toll zu dokumentieren, dass der Standardumgebungsname für meinen Fall test ist. Ich glaube, ich habe das nirgendwo gefunden.
  • Persönlich würde (hätte) es mir geholfen, ein paar typische Beispiele zu haben, die vollständig sind (zB ein Python- und ein CMake-Test). Dann wären mir einige der Fallstricke, auf die ich gestoßen bin, offensichtlicher gewesen (natürlich ist alles da, nur ist man ab und zu ein fauler Leser, und es hilft, wenn Dinge 'auf die Nase' gestellt werden).
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

magland picture magland  ·  4Kommentare

sadielbartholomew picture sadielbartholomew  ·  8Kommentare

mrmundt picture mrmundt  ·  12Kommentare

ma-sadeghi picture ma-sadeghi  ·  16Kommentare

goanpeca picture goanpeca  ·  9Kommentare