Setup-miniconda: Проблемы с активацией среды

Созданный на 13 нояб. 2020  ·  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 ?

Вы не можете добавить имя к файлу? Если его нет в вашем репо, возможно, исправьте его с помощью echo "name: test" >> environment.yaml перед использованием setup-miniconda ?

@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, вам необходимо указать дополнительные аргументы для действий, как описано в 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

Значит, мне придется делать это для каждой строки, в которой я хочу использовать среду?

Да или используйте оболочку по умолчанию, если все ваши шаги будут использовать одну и ту же, как описано ниже:
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 рейтинги

Смежные вопросы

mrmundt picture mrmundt  ·  12Комментарии

ma-sadeghi picture ma-sadeghi  ·  4Комментарии

sadielbartholomew picture sadielbartholomew  ·  8Комментарии

ma-sadeghi picture ma-sadeghi  ·  16Комментарии

volpatto picture volpatto  ·  12Комментарии