У меня проблемы с простой активацией среды 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!
Как я могу улучшить его, чтобы он действительно работал?
Заменить:
- 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
, я не думаю, что где-нибудь нашел это.
Самый полезный комментарий
Отличный @goanpeca , спасибо за помощь и за пиар !!
Если я могу поделиться личным опытом с ридми, пока мы закрываем этот вопрос:
test
, я не думаю, что где-нибудь нашел это.