укажите команды для запуска после создания conda из файла yml - PullRequest
0 голосов
/ 01 декабря 2019

У меня есть файл environment.yml, который я использовал для создания среды Python, используя:

conda env create --file environment.yml.

После создания среды мне нужно выполнить некоторые операции (например,как регистрация ядра в jupiter-lab):

ipython kernel install --name=to_the_edge

Я хотел бы встроить одну или несколько команд оболочки для запуска "post install", чтобы установка была автономной в пределахфайл .yml. Есть ли способ сделать это? Или в conda есть другой способ приблизиться к тому, что мне нужно?

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

Может быть, это невозможно, потому что conda работает на кроссплатформенной платформе?

1 Ответ

1 голос
/ 01 декабря 2019

На самом деле это невозможно при использовании стандартных команд Conda, но есть несколько вариантов получения такой функциональности.

Jupyter и Conda

Лучшая практика для Jupyter и Conda - иметьодин env, в котором установлено jupyter, а также nb_conda_kernels. Вы всегда запускаете jupyter notebook из этого env. Пакет nb_conda_kernels позволяет Jupyter автоматически обнаруживать любые другие envs, имеющие ipykernel (или другие языковые эквиваленты, например, r-irkernel). Следовательно, вам не нужна дополнительная регистрация, а просто нужно включить ipykernel в YAML. См. документы по nb_conda_kernels.

Запуск сценариев при установке

Это невозможно сделать из YAML. Однако вы можете создать свой собственный пакет, который делает это во время установки, а затем включить его в свой YAML. Вы должны будете предоставить .sh, .bat и т. Д. Для запуска команд. См. документацию по добавлению сценариев до ссылки, после ссылки и несвязанных ссылок в рецепт пакета .

. По этому маршруту вы также можете добавить активацию и деактивацию сценариев которые запускаются, когда env активируется и деактивируется соответственно. Вы также можете добавить такие скрипты вручную, то есть без пользовательского пакета. Например, в документах показано, как определять переменные среды при активации, но вы можете запускать произвольные сценарии.

...