Я знаю, почему это хорошо в целом: более быстрые исправления безопасности, более простая упаковка, больше функций. Однако я пытаюсь убедить некоторых сотрудников, что нам не нужно связывать библиотеку с нашей программой. Он не будет работать без этой библиотеки, но библиотека уже некоторое время стабильна и останется таковой в обозримом будущем. Я не вижу причин НЕ разбирать его.
Какие аргументы я могу использовать, чтобы убедить их?
Моя конкретная ситуация такова: я работаю над SymPy , библиотекой Python с открытым исходным кодом для символической математики. Основной его частью является mpmath , библиотека для многоцелевой арифметики с плавающей запятой. SymPy не работает без mpmath, альтернативы нет. Как таковой, он был связан с SymPy с самого начала (мне сказали, что обычно есть небольшие несовместимости, чтобы исправить каждый раз, когда импортируется новая версия). Также следует отметить, что разработчик mpmath раньше принимал участие в разработке SymPy. Теперь есть проблема с разделением mpmath, вы можете прочитать все это здесь .
Подведем итоги обсуждения:
Unbundle:
Несколько проще портировать на Python 3 (второстепенный аргумент ИМХО)
Более простая упаковка для раздачи
Быстрее (безопасность) обновления функций для пользователей
«Зависимости упаковки и обработки - это сложные проблемы, но они решаемы. Это определенно не та область, в которой мы должны заниматься своими делами».
Продолжайте связывать:
Монтаж. Это легко для Linux, сложнее для Mac и очень тяжело для Windows. Отсутствие доступа к су и другие проблемы.
это неотъемлемая часть SymPy, т.е. sympy не работает без него (вообще)
нет нет другого пакета, который может сделать работу mpmath
«Когда я, как пользователь, загружаю sympy, я ожидаю, что это просто сработает».
Это моя конкретная ситуация, но я бы принял ответ, который также дает хороший общий ответ.