Можно ли распространять пакеты в средах Anaconda?

Мой каталог ~/anaconda занимает слишком много места на диске (10 ГБ), хотя у меня есть только пять окружений и они работают в режиме conda clean. Я обнаружил, что когда я пытаюсь создать новую среду conda, Anaconda отображает очень длинный список загружаемых пакетов, который, как представляется, включает полный научный стек Python (интерпретатор Python, numpy, scipy и т.д.). Кажется, что Anaconda устанавливает все самостоятельно для каждой среды. Это правда?

Следующий список содержит некоторые чисто умозрительные способы, которые могут потенциально решить космическую проблему:

  • Могу ли я создать "под-среду", которая "наследует" пакеты "родительской среды"?
  • Можно ли сделать Anaconda для совместного использования (например, через символические ссылки в файловой системе) тех же пакетов, которые используются в разных средах?
  • Имеет ли среда по умолчанию какой-либо особый статус с точки зрения управления пакетами? Я использую Anaconda 2, но в большинстве своих сред используется Python 3. Могу ли я экономить место, переключившись на Anaconda 3? (Это касается среды по умолчанию как "родительская среда" всех других сред.)
  • Обычно я использую pip для установки пакетов, поскольку conda install часто терпит неудачу. conda install ли conda install какое-нибудь умное задание для повторного использования пакетов, уже установленных где-то еще?

(Отладочная информация) Размеры моих четырех каталогов окружения в ~/anaconda/envs составляют от 1,2 до 2,6 ГБ. Это нормально?

Ответ 1

Чтобы создать среды, которые наследуют пакеты:
Вы можете экспортировать/импортировать имена пакетов, используемых в файле yaml.
Или используйте флаг --clone.
См. Этот ответ.