Я ищу лучшие практики, делаю и не хочу касаться спецификаций спецификации в файлах требований для pip в пакетах python.Требования к пакету Python: Использование спецификаторов версий == и> =
Предположим, что пакет python зависит от некоторых других модулей. Для большинства из них требуется минимальная версия. По крайней мере, для сопровождающих известно, что код работает с наименьшим, например, шесть 1,7
Теперь можно определить требования по-разному:
six>=1.7.0
Программное обеспечение было протестировано с этой версией, и предполагается, что он будет также с будущими версиямиsix==1.7.0
Мы требуется точная версия, пакет был протестирован. Программное обеспечение не тестировалось со всеми будущими версиями модуля, поэтому мы не можем гарантировать, что он будет работать для них.six==1.9.0
Мы просто тестируем его с использованием новейшей версии и требуем его.
У меня есть торможение, требующее точной версии, так как это может нарушить другие требования к пакетам и кажется мне плохой практикой. С другой стороны, пакет не был протестирован со всеми версиями шести выше 1.7.0.
Существуют ли какие-либо указания относительно требований к версии пакета и использования ==
против >=
?
содержит обе версии: один указывает минимальные требования '> =' и содержит только прямые зависимости (рукописные), другой использует точные проверенные версии для всех сторонних пакетов, которые генерируются автоматически ('pip-compile') – jfs
Поэтому я должен порекомендовать установить точные версии, если это возможно, и дополнительно требовать минимальные версии? Рекомендуемые точные версии могут быть помещены в файл требований для 'pip -r'. Но как справиться с минимальными требованиями, поместите его в setuptools 'install_requires'? – sebix
В разных вариантах использования могут потребоваться различные решения; это не «ни или»: используйте точные версии для себя, чтобы обеспечить воспроизводимую среду. Вы не можете контролировать, какие версии могут быть доступны в других средах, - не устанавливайте никаких ограничений, если вы не должны (то есть, если вы знаете, что это не работает до конкретной версии), например, поставите себя на место для поддержки дистрибутива: может быть полезно узнать (например, посетив сайт CI), какие точные версии будут проверены 1.9.0, но лучше, если ваш пакет поддерживает текущие/будущие стабильные версии, т. е. 'six> = 1.7' это нормально. – jfs