Di requirements.txt
untuk pustaka Python yang saya gunakan, salah satu persyaratan ditentukan seperti:
mock-django~=0.6.10
Apa ~=
maksudnya
Di requirements.txt
untuk pustaka Python yang saya gunakan, salah satu persyaratan ditentukan seperti:
mock-django~=0.6.10
Apa ~=
maksudnya
Jawaban:
Ini berarti ia akan memilih versi terbaru dari paket tersebut, lebih besar dari atau sama dengan 0.6.10, tetapi masih dalam versi 0.6. *, Jadi misalnya tidak akan mengunduh 0.7.0. Ini memastikan Anda akan mendapatkan perbaikan keamanan tetapi tetap mempertahankan kompatibilitas ke belakang, jika pengelola paket menghormati versi semantik (yang menyatakan bahwa perubahan yang melanggar harus terjadi hanya dalam versi mayor).
Atau, seperti yang dikatakan oleh PEP 440:
Untuk pengenal rilis VN tertentu, klausa rilis yang kompatibel kira-kira setara dengan pasangan klausa perbandingan:
>= V.N, == V.*
Itu adalah penentu versi 'rilis yang kompatibel' .
Ini setara dengan:, mock-django >= 0.6.10, == 0.6.*
dan merupakan cara rapi untuk mencocokkan versi yang diharapkan kompatibel. Dalam bahasa Inggris yang sederhana, ini seperti mengatakan: "Saya memerlukan versi mock-django yang setidaknya baru 0.6.10, tetapi tidak terlalu baru sehingga tidak kompatibel dengannya."
Jika Anda tidak yakin tentang semua hal tentang nomor versi ini, lihat sekilas skema versi PEP440 akan membantu Anda!
Klausul rilis yang kompatibel terdiri dari operator rilis yang kompatibel ~ = dan pengenal versi. Ini cocok dengan versi kandidat apa pun yang diharapkan kompatibel dengan versi yang ditentukan.
Anda dapat membaca lebih lanjut di sini: https://www.python.org/dev/peps/pep-0440/#compatible-release