#python #pip
Вопрос:
Я работаю над проектом, с которым связаны два репо, и часто работаю над обоими одновременно. Похоже, это классический случай редактируемой установки pip, которую я использую. Продвигаясь вперед в направлении создания продукта, я задаюсь вопросом, есть ли какие-либо недостатки в установке в редактируемом режиме? Действительно вопрос из двух частей:
- Есть ли недостатки в редактируемых установках с точки зрения производительности?
- Есть ли недостатки в редактируемых установках при развертывании, из-за которых стоило бы иметь дополнительный код для выполнения традиционной установки? Существуют ли последствия безопасности/разрешений/контейнеризации/и т.д., Которые я не осознаю?
Ответ №1:
С точки зрения производительности нет никаких недостатков.
Редактируемые установки предназначены для разработки. При развертывании кода обычно лучше создать выпуск вашего пакета, чтобы вы точно знали, какую версию он использует. Создайте тег в своей системе управления версиями и ссылайтесь на него. Это избавит вас от многих будущих неприятностей.
Если вы не хотите публиковать в общедоступном репозитории или настраивать частный, вы можете установить его непосредственно из Git. Обычно это хороший компромисс, и у вас будут последовательные выпуски.
Комментарии:
1. > Есть и недостатки с точки зрения производительности. — нет, их нет, редактируемые установки-это просто причудливые манипуляции с sys.path (тот же код, только в другом месте).
2. «Редактируемые установки предназначены для разработки». Можете ли вы объяснить, почему? Каковы фактические последствия этого, которые делают его непригодным для развертывания? Меня здесь особо не волнует управление версиями, это решается в других частях моей настройки.
3. @Саша, проблема на самом деле в управлении версиями. Вы не исправляете выпускную версию своей библиотеки при установке в редактируемом режиме.
4. @AnthonySottile ops, я забыл поставить «нет» в своей фразе и перевернул значение. Там действительно нет никаких недостатков.
5. @невес Спасибо. Ваша точка зрения об управлении версиями могла бы иметь значение, если бы я устанавливал непосредственно из репозитория или другого внешнего источника, но в этом случае, как я уже сказал, управление версиями контролируется контейнеризацией, и мне все равно. Тогда, похоже, других последствий нет!