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

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

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

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

Может есть какой то менеджер окружений, который хранит все пакеты в одном месте, а в папки виртуальных окружений лишь закидывает ссылки на файлы пакетов?
  • Вопрос задан
  • 339 просмотров
Подписаться 3 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Eduson
    Python-разработчик
    9 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
Решения вопроса 2
@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 вариант, это вообще не требует ничего менять в используемых утилитах, а просто вручную запускать ее после заметных обновлений, как минимум сэкономишь место
Ответ написан
@alekssamos
Программист любитель
Я тоже за uv. Он очень быстрый, может работать прямо на чистой системе, даже если никакого python в ОС нет. Он сам его загрузит и поставит. И сделает это за пять секунд.

По факту можно взять бинарник uv и наш проект. Всё, этого будет достаточно!
До сих пор восхищаюсь.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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