Задать вопрос
@SmeliyR

Существует ли менеджер виртальных окружений для python, который хранит все пакеты в одном месте?

Существует ли менеджер виртальных окружений для python, который хранит все пакеты в одном месте, благодаря чему пакеты с одной и той же версией не дублируются?
Сейчас, когда я создаю новое окружение через python -m venv, активирую новое окружение и затем в новое окружение делаю pip install <пакет>, то пакет заново качается из интернета
и заново занимает место на диске в папке данного виртуального окружения.

Например, если есть разных 10 проектов, использующих PyTorch, который для версии CUDA весит 4 гига - то в итоге всё вместе займет 40 гигов на диске минимум.

Может есть какой то менеджер окружений, который хранит все пакеты в одном месте, а в папки виртуальных окружений лишь закидывает ссылки на файлы пакетов?
  • Вопрос задан
  • 53 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Python-разработчик
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@rPman
conda/mamba (и micromamba)/uv умеют хранить пакеты в одном месте и при создании окружения делать хардлинки (если они на одном диске), uv умеет делать copy-on-write для cow файловых систем типа zfs/btrfs/xfs, в этом случае даже при редактировании файла он поменяется только там где меняли но при этом место на диске при копировании не тратится (только метаинформация, там по кластерам fs хранение идет).

Рекомендую uv, так как по факту там тот же python -m venv но подменяется сам pip установщик плюс фишки по управлению версиями.

p.s. есть утилита duperemove которую просто натравливаешь на каталог, и она заменяет копии файлов на их copy-on-write вариант, это вообще не требует ничего менять в используемых утилитах, а просто вручную запускать ее после заметных обновлений, как минимум сэкономишь место
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы