@mkone112
Начинающий питонист.

Каков наиболее предпочтительный способ управления зависимостями?

Пытаюсь выбрать альтернативу связки pip & virtualenv & pyenv. Есть множество инструментов - например poetry, pip-tools, pyflow, conda, DepHell(вроде багованный). Пока остановился на pipenv, в связи с чем появились следующие вопросы.
  • Не стреляю ли я себе в ногу? Какие-проблемы может создать pipenv по сравнению со встроенными в язык инструментами?
  • Существует ли еще более удобная альтернатива pipenv?
  • Вопрос задан
  • 503 просмотра
Решения вопроса 2
@deliro
Вставлю свои 5 копеек. Перехожу на Pipenv и разочаровался в нем максимально. В небольшом проекте с ~30 зависимостями любое обновление или установка простейшей либы (без компиляций, чистый питон. Например, loguru или pydantic) занимает примерно 3-7 минут времени, иногда до получаса (буквально).

На гитхабе висит тикет с 2018 года по этому поводу, на который разработчики положили (. https://github.com/pypa/pipenv/issues/2284) При этом, yarn и npm ставят на порядки больше зависимостей в на порядки более короткие сроки. С той же функциональностью - воспроизводимость среды, резолвинг конфликтов.

Пробовал poetry. Он выглядит лучше, по крайней мере, не настолько долгий, но все равно долгий. Но у него нет никуда интеграций (меня интересует PyCharm). Есть сторонний плагин, который у меня не завёлся.

Итого, после выпуска нескольких проектов на Pipenv, я скатился до pip и ручного управления средой. Потому что я не выдерживаю столько ждать для установки простейших библиотек. В питоне не существует известного мне способа нормального управления зависимостями, как в JS/TS.
Ответ написан
@mkone112 Автор вопроса
Начинающий питонист.
3 месяца использования pipenv - полет нормальный. Есть конечно проблемы с поддержкой сторонними тулзами на гитхабе, но это не особо критично. Производительность не парит - запускаю lock и иду заваривать чай, при обычной установке разницы с pip вообще нет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dunmaksim
@dunmaksim
Технический писатель
Положите в корень проекта файл REQUIREMENTS.txt и вызывайте pip вот так:
pip install -r REQUIREMENTS.txt
Ответ написан
Ваш ответ на вопрос

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

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