Trong requirements.txt
thư viện Python mà tôi đang sử dụng, một trong các yêu cầu được chỉ định như:
mock-django~=0.6.10
Nghĩa ~=
là gì?
Trong requirements.txt
thư viện Python mà tôi đang sử dụng, một trong các yêu cầu được chỉ định như:
mock-django~=0.6.10
Nghĩa ~=
là gì?
Câu trả lời:
Nó có nghĩa là nó sẽ chọn phiên bản mới nhất của gói, lớn hơn hoặc bằng 0.6.10, nhưng vẫn ở phiên bản 0.6. *, Vì vậy nó sẽ không tải xuống 0.7.0 chẳng hạn. Nó đảm bảo bạn sẽ nhận được các bản sửa lỗi bảo mật nhưng vẫn giữ được khả năng tương thích ngược, nếu người bảo trì gói tôn trọng việc lập phiên bản ngữ nghĩa (cho biết rằng các thay đổi vi phạm chỉ xảy ra trong các phiên bản chính).
Hoặc, như đã nói trong PEP 440:
Đối với một mã định danh phát hành cụ thể là VN, mệnh đề phát hành tương thích gần tương đương với cặp mệnh đề so sánh:
>= V.N, == V.*
Đó là thông số phiên bản ' bản phát hành tương thích' .
Nó tương đương với:, mock-django >= 0.6.10, == 0.6.*
và là một cách gọn gàng để so khớp phiên bản dự kiến sẽ tương thích. Trong tiếng Anh đơn giản, nó giống như nói: "Tôi cần một phiên bản mock-django ít nhất là mới như 0,6.10, nhưng không quá mới đến mức không tương thích với nó."
Nếu bạn không chắc chắn về tất cả những thứ liên quan đến số phiên bản này, hãy xem nhanh sơ đồ phiên bản PEP440 sẽ giúp bạn loại bỏ!
Điều khoản phát hành tương thích bao gồm toán tử phát hành tương thích ~ = và số nhận dạng phiên bản. Nó khớp với bất kỳ phiên bản ứng viên nào được mong đợi sẽ tương thích với phiên bản được chỉ định.
Bạn có thể đọc thêm tại đây: https://www.python.org/dev/peps/pep-0440/#comp Tương thích-release