Requals.txt'de tilde şuna eşittir (~ =) ne anlama geliyor?


100

Gelen requirements.txtkullanıyorum Python kütüphanesi için, şartlardan birini gibi belirtilir:

mock-django~=0.6.10

Ne anlama ~=geliyor?

Yanıtlar:


119

Bu, paketin en son sürümünü 0.6.10'dan büyük veya buna eşit, ancak yine de 0.6. * Sürümünde seçeceği anlamına gelir, bu nedenle örneğin 0.7.0'ı indirmez. Paket bakımcısı anlamsal sürüm oluşturmaya saygı duyarsa (değişikliklerin yalnızca ana sürümlerde olması gerektiğini belirtir), güvenlik düzeltmeleri almanızı ancak geriye dönük uyumluluğu korumanızı sağlar.

Veya PEP 440'ın söylediği gibi:

Belirli bir yayın tanımlayıcısı VN için uyumlu serbest bırakma cümlesi, karşılaştırma cümleleri çiftine yaklaşık olarak eşdeğerdir:

>= V.N, == V.*


3
"yaklaşık olarak"? Bu denklik için herhangi bir istisna var mı?
AXO

1
@AXO AFAIK, yayın öncesi / sonrası sürüm eşleşmesiyle ilgili incelikler var. Çoğu zaman bu, temel kullanımı etkilemez, çoğunlukla büyük / küçük sürüm eşleştirmesiyle sınırlıdır.
Maxime Lorant

12

Bu, 'uyumlu sürüm' sürüm belirleyicisidir .

Şuna eşdeğerdir: mock-django >= 0.6.10, == 0.6.*ve uyumlu olması beklenen bir sürümü eşleştirmenin düzenli bir yoludur. Sade bir İngilizcede, "mock-django'nun en az 0.6.10 kadar yeni bir versiyonuna ihtiyacım var, ancak onunla uyumlu olmayacak kadar yeni değil."

Tüm bu sürüm numarası şeylerinden emin değilseniz, PEP440 sürüm şemasına hızlı bir bakış sizi çözecektir !


7

~ = uyumlu bir sürüm anlamına gelir. En az 0.6.10 ve üstü (0.6. *).


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.