Belirli bir sürüm aralığına bağlı bir paket oluşturmak istiyorum örn. >= 0.5.0, < 0.7.0
. install_requires
seçeneğinde mümkün mü ve eğer öyleyse nasıl olmalı?Kurulum dosyalarında sürüm aralıkları nasıl belirlenir (setuptools, dağıtma)
cevap
the documentation uyarınca, sözdizimi doğru şekilde çalışmalıdır.
setuptools
vepkg_resources
bir projenin gerekli bağımlılıkları belirtmek için ortak bir sözdizimi kullanın: dokümantasyon belirtiyor. Bu sözdizimi, isteğe bağlı olarak, isteğe bağlı olarak virgülle ayrılmış sürüm belirteçleri listesi tarafından izlenen, köşeli parantez içinde virgülle ayrılmış "ekstralar" listesi izleyen bir projenin PyPI adından oluşur. Bir sürüm belirteci, <,>, < =,> =, == veya! = Operatörlerinden biri ve ardından bir sürüm tanımlayıcısıdır. Eğer paket sürümü 0.5 den sürüm 0.3 dendocutils
büyük ama daha az bir sürümünü gerektirir istiyorsanızdocutils >= 0.3 # comment lines and \ continuations are allowed in requirement strings BazSpam ==1.1, ==1.2, ==1.3, ==1.4, ==1.5, \ ==1.6, ==1.7 # and so are line-end comments
, o üzerine böyle bir kod genişletmek için:
belgeler bu gibi basit bir örnek verir Bu işe yarar:
docutils >= 0.3, <=0.5
İki ek not.
- dokümantasyon da gereksiz/örtüşen bağımlılık özellikleri öylesine
docutils >= 0.3, >=0.2
docutils >= 0.3
birleştirilebilir olur, içten birleştirilebilir belirtiyor. - Ayrıca, "is meaningless and may therefore produce bizarre results." çakışan sürüm numaralarını belirtme konusunda dikkatli olun Örneğin, neden olduğunu bilmiyordum ama bunu kullanmayın:
docutils >= 0.3, <=0.2
Bu imkansız olduğundan.
Harika bir cevap, ama beni şaşırtan şey, bazen virgülün ** veya ** ve bazen de ** ve ** anlamına gelmesidir: tam sürüm özelliklerinin listesi açıkça '1.1 veya 1.2 veya ...' yazıyor ve birleştirerek '> = 0.3 ,> = 0.2 'sadece'> = 0.2 'sadece bu şekilde anlamlıdır. Ancak '> = 0,3, <= 0,5' veya sürüm özellikleriyle çelişen paragrafınız ** ve ** ile ifade edilen virgüllere ihtiyaç duyar. – zpea
@zpea nın sorusu üzerine inşa etmek için: birden fazla sürüm aralığını tanımlamanın herhangi bir yolu var mı? ör.>> 1.0 VE <2) OR (> = 2.7 VE <2.9) OR (> = 4) ' – stefanfoulis
Dokümanlar,> 1,> 2'nin> 1 olduğunu söylüyor, ancak söylediğin gibi> 2 olmak daha mantıklı. Herkes nedenini biliyor mu? –
İstemsiz beta testlerine karşı dikkatli olun. Paket yöneticileri bazen uyarı vermeden genel dinleyicilere uyumsuz, eksik veya bozuk a, b ve c sürümleri yayınlarlar. Yeni bir virtualenv'de setup.py'u bir sonraki çalıştırmada, bu zehirli yumurtalardan birini aşağı çekebilir ve aniden programınız kesilir.
Bu riski azaltmak için, , salt sayısal üst sınırı olan stil bildirimini kullanmaz. <0.4
, yine de, install_requires ürününü yazdığınızda, foo >=0.3, <0.4a0
sürümündeki gibi <0.4a0
gibi bir üst sınır kullanın, bunun yerine, 0,4a0, 0,4a1, 0,4b0, 0,4c3 vb.
Setuptools Sürüm karşılaştırmaları modellemek için verlib kullanmayı deneyerek beklenmedik bir şey yapar. Sürümleriniz normalleştirildiği ve çelişkili olmadığı sürece Verlib oldukça iyi bir uyum sağlar. Aşağıda, normalize edilmiş sürümlerin potansiyel olarak karşı-sezgisel olarak sipariş edildiğini gösteren bir örnek verilmiştir:
#!/usr/bin/env python
from verlib import NormalizedVersion as V
assert (V("0.7.9") < V("0.8a0") < V("0.8a1") < V("0.8b0") < V("0.8b1")
< V("0.8b2") < V("0.8.0") < V("0.8.1a0") < V("0.8.1") < V("0.9")
< V("1.0a3") < V("1.0b2") < V("1.0b20") < V("1.0c0") < V("1.0")
< V("1.0.1"))
assert (V("0.7.9") < V("0.8.0a0") < V("0.8.0a1") < V("0.8.0b0")
< V("0.8.0b1") < V("0.8.0b2") < V("0.8.0") < V("0.8.1a0") < V("0.8.1")
< V("0.9") < V("1.0a3") < V("1.0b2") < V("1.0b20") < V("1.0c0")
< V("1.0") < V("1.0.1"))
print "Version comparisons are sane."
Verlib dosyasını setup.py dosyasında ('install_requires') nasıl kullanıyorsunuz? –
- 1. setuptools
- 2. setuptools:
- 3. Powershell dsc sürüm 3.8.0.0 kurulum
- 4. Python Kurulum Araçları, easy_install kurulum ayarları
- 5. AssemblyInfo Sürüm numaralarını MSI kurulum sürümüyle ayarlayın
- 6. python, setuptools
- 7. TortoiseHG 2.0.5, Changeset Aralıkları
- 8. Python 3 setuptools mac üzerinde
- 9. Sürüm bilgisi kurulum çıktı dosya adı nasıl eklenir?
- 10. Docker'da bellek ve CPU sınırı nasıl belirlenir sürüm 3
- 11. Zaman aralıkları nasıl ortalama?
- 12. Openpyxl (ImportError: setuptools) yüklenemiyor
- 13. Kurulum VS2010 için InstallShield Sınırlı Sürüm benim uygulama
- 14. alt aralıkları
- 15. Varsayılan dist klasörünü setuptools ile değiştirin
- 16. Yükleme sonrası komut dosyalarını easy_install/setuptools/distutils'e nasıl ekleyebilirim?
- 17. Python uygulamasını dağıtma
- 18. Django’yu dağıtma: Bunu nasıl yapıyorsunuz?
- 19. Amaç C'deki Zaman Aralıkları
- 20. Python setuptools: install_requires altındaki özel bir depoyu nasıl listeleyebilirim?
- 21. Birleştirme tarih aralıkları
- 22. Python tamsayı aralıkları
- 23. Birden çok Heroku örneğine dağıtma
- 24. Android Uygulamasını Dağıtma
- 25. scipy kurulum
- 26. Solr sonuçlarında faset aralıkları nasıl elde edilir?
- 27. F # tabanlı kitaplıkları dağıtma
- 28. Kurulum yazılımlarını yükleme Python, ez_setup.py hatası
- 29. nasıl kullanarak ekran görüntülerinden maven versiyon aralıkları durdururum
- 30. Docker oluşturma kapsayıcılarını dağıtma
Ne denediniz? [Dokümanlar] (http://peak.telecommunity.com/DevCenter/setuptools#declaring-dependencies), söz konusu sorudaki gibi sözdiziminin çalışacağını gösterir. – Blckknght