Требования к пакетам для macOS и linux не всегда одинаковы. И даже при полном совпадении требований набор доступных версий не всегда идентичен. (Может быть, conda-forge
содержит foobar-1.2.3
для linux, но foobar-1.2.4
для macOS.)
По этим причинам обычно невозможно экспортировать большой список пакетов среды из macOS и ожидать, что он работать на linux или наоборот (по крайней мере, по моему опыту). Когда среда становится достаточно большой, становится высокой вероятность того, что требования хотя бы одного пакета не могут быть удовлетворены.
Следовательно, вам необходимо поддерживать два разных файла environment.lock.yaml
для macOS и для linux. Поскольку вы начинаете с файла, который работает в macOS, одна простая вещь, которую можно попробовать, - просто отбросить версии патчей со всеми требованиями и посмотреть, сможет ли conda с этим работать.
Итак, я попробовал это в вашем файле. Это сработало довольно быстро. (Я добавлю новый файл блокировки как комментарий к вашей сути .) По общему признанию, это не идеально - почти половина пакетов оказалась с немного другой версией. Вам нужно будет протестировать среду, чтобы убедиться, что она по-прежнему соответствует вашим потребностям.
Если вы действительно хотите, чтобы две среды максимально соответствовали друг другу, вы можете попробовать перебрать различия и восстановить их по очереди. время, пока вы не столкнетесь с ошибкой. Но это похоже на большие проблемы, чем того стоит. Может быть, лучшая стратегия - просто просмотреть различия и посмотреть, выделяется ли какое-либо из них для вас. Вы знаете свой вариант использования; возможно, есть один или два пакета, к которым вам нужно быть очень разборчивым, поэтому выберите эти версии вручную, а остальные оставьте в покое.