Изменить среду Conda с помощью сценария powershell (для Gitlab-CI) - PullRequest
1 голос
/ 01 июля 2019

Я запускаю несколько автоматических тестов Python с GitLab-CI на компьютере с Windows 10.GitLab-Runner на компьютере, который раньше работал с executor = "shell" с помощью простой оболочки Windows.Это недавно перестало работать (в документах говорится, что поддержка этой оболочки устарела), и единственный способ заставить ее работать снова - это вместо этого использовать powershell, добавив shell = "powershell" в наш config.toml файл.Для запуска тестов нам нужно активировать среду conda.К сожалению, похоже, что это не работает с помощью сценария powershell, который GitLab-CI создает для задания.

Когда я открываю powershell, вошел в систему вручную как пользователь, выполняющий задания бегуна gitlab, изменение среды conda работает.Я запустил conda init powershell и могу изменить среду с помощью conda activate myenv.Тем не менее, когда я включаю в свой файл gitlab-ci.yml следующее:

script:
  - conda activate myenv
  - conda list

, вывод conda list подтверждает, что среда myenv не активирована и вместо нее используется базовая среда.

Также пробовать абсолютный путь, как этот

script:
  - conda activate C:\Users\myuser\Miniconda3\envs\myenv
  - conda list

, не работает.

Так что кажется, что я могу вручную активировать правильную среду conda в powershell, но активировать среду черезсценарий powershell, созданный GitLab-CI, не работает.Есть ли решение этой проблемы?Любая помощь с благодарностью.

1 Ответ

1 голос
/ 01 июля 2019

Похоже, gitlab выполняет каждую строку скрипта в отдельной подоболочке. Объедините команды в одну строку.

Если это не сработает, большинство conda команд примут имя среды в качестве параметра -n:

conda list -n myenv
conda install -n myenv PackageName
...

Пока вы используете conda, активировать среду не нужно.

...