Có hai trại hoàn toàn phản đối: một trong các lợi ích của các gói do hệ thống cung cấp và một ưu tiên cho việc cài đặt riêng biệt. Cá nhân tôi trong trại "gói hệ thống". Tôi sẽ cung cấp các đối số từ mỗi bên dưới đây.
Gói hệ thống chuyên nghiệp: bộ đóng gói hệ thống đã quan tâm đến sự phụ thuộc và tuân thủ các chính sách hệ thống tổng thể (chẳng hạn như bố cục tệp). Các gói hệ thống cung cấp các bản cập nhật bảo mật trong khi vẫn quan tâm đến việc không phá vỡ khả năng tương thích - vì vậy đôi khi chúng sẽ khắc phục các bản sửa lỗi bảo mật mà các tác giả ngược dòng không trả lại. Các gói hệ thống là "an toàn" wrt. nâng cấp hệ thống: sau khi nâng cấp hệ thống, bạn có thể cũng có phiên bản Python mới, nhưng tất cả các mô-đun Python của bạn vẫn ở đó nếu chúng đến từ trình đóng gói hệ thống. Đó là tất cả trải nghiệm cá nhân với Debian.
Gói hệ thống con: không phải tất cả phần mềm có thể được cung cấp dưới dạng gói hệ thống hoặc không có trong phiên bản mới nhất; tự cài đặt nội dung vào hệ thống có thể phá vỡ các gói hệ thống. Nâng cấp có thể phá vỡ ứng dụng của bạn.
Cài đặt riêng biệt Pro: Một số người (trong các nhà phát triển ứng dụng web cụ thể) cho rằng bạn hoàn toàn cần thiết lập lặp lại, chỉ với các gói bạn muốn và hoàn toàn tách khỏi hệ thống Python. Điều này vượt ra ngoài các gói hệ thống tự cài đặt so với các gói hệ thống, vì ngay cả khi tự cài đặt, bạn vẫn có thể sửa đổi hệ thống python; với việc cài đặt riêng biệt, bạn sẽ không. Như Lennart thảo luận, hiện nay có các chuỗi công cụ chuyên dụng để hỗ trợ thiết lập này. Mọi người cho rằng chỉ có cách tiếp cận này mới có thể đảm bảo kết quả lặp lại.
Cài đặt riêng biệt: bạn cần tự giải quyết các lỗi và bạn cần đảm bảo rằng tất cả người dùng của mình đều sử dụng cài đặt riêng. Trong trường hợp các ứng dụng web, sau này thường dễ đạt được.
Nguồn
2009-10-13 10:57:17
[pyenv] (https://github.com/yyuu/pyenv#readme) là một công cụ tuyệt vời để quản lý nhiều phiên bản Python và [virtualenvs] (https://github.com/yyuu/pyenv-virtualenv#readme). –