Tôi biết tại sao điều này nói chung là tốt: sửa lỗi bảo mật nhanh hơn, đóng gói dễ dàng hơn, nhiều tính năng hơn. Tuy nhiên, tôi đang cố gắng thuyết phục một số đồng nghiệp rằng chúng tôi không cần phải gói một thư viện với chương trình của chúng tôi. Nó sẽ không hoạt động nếu không có thư viện này, nhưng thư viện đã ổn định trong một thời gian và sẽ duy trì như vậy trong tương lai gần. Tôi không thấy bất kỳ lý do nào KHÔNG giải quyết nó.
Tôi có thể sử dụng những lý lẽ nào để thuyết phục họ?
Tình huống cụ thể của tôi là thế này: Tôi đang làm việc trên SymPy , một thư viện Python mã nguồn mở cho toán học tượng trưng. Một phần cốt lõi của nó là mpmath , là một thư viện cho số học dấu phẩy động đa phổ. SymPy không hoạt động mà không có mpmath, không có sự thay thế nào. Do đó, nó đã được đóng gói với SymPy kể từ khi bắt đầu (tôi được cho biết rằng thường có sự không tương thích nhỏ để sửa mỗi khi một phiên bản mới được nhập). Cũng cần lưu ý rằng nhà phát triển mpmath đã từng tham gia phát triển SymPy. Bây giờ có một vấn đề về việc giải quyết mpmath, bạn có thể đọc tất cả ở đây .
Để tóm tắt các cuộc thảo luận ở đó:
Giải quyết:
Việc chuyển sang Python 3 dễ dàng hơn (đối số nhỏ IMHO)
Bao bì dễ dàng hơn để phân phối
Cập nhật tính năng (bảo mật) nhanh hơn cho người dùng
"Đóng gói và xử lý các phụ thuộc là những vấn đề khó khăn, nhưng chúng đã được giải quyết. Đây chắc chắn không phải là một lĩnh vực mà chúng ta nên làm việc của riêng mình."
Giữ bó:
Cài đặt. Nó dễ với Linux, khó hơn trên Mac và rất khó với Windows. Thiếu quyền truy cập su và các vấn đề khác.
nó là một phần không thể thiếu của SymPy, tức là sympy không hoạt động mà không có nó (tất cả)
có không gói khác, mà có thể thực hiện công việc của mpmath
"Khi tôi, với tư cách là người dùng, tải xuống sympy, tôi hy vọng nó chỉ hoạt động."
Đó là tình huống cụ thể của tôi, nhưng tôi cũng chấp nhận một câu trả lời cung cấp một câu trả lời chung chung, tốt.