Neden benim paketim eski bir sürümünü yükleme, pip?
Sadece PyPi için benim paket yeni bir sürüm (1.2.1.0-r4) yükledim: yumurta dosya yükleme ve easy_install ve sürümü dışarı doğru çek. ile bağlantı kurabiliyor Ama pip kullanarak yüklemeye çalıştığınızda, sürüm 1.1.0.0 yerine yükler. Ben bu mesajı alıyorum açıkça pip install -Iv tome==1.2.1.0-r4
pıp için sürümü belirtirseniz hatta: Requested tome==1.2.1.0-r4, but installing version 1.1.0.0
, ama neden anlamıyorum.
Ben çift parse_version
ile işaretli ve 1.2.1 sürüm dizesi olarak gösterilen 1.1.0: daha büyük olduğunu doğruladı
>>> from pkg_resources import parse_version as pv
>>> pv('1.1.0.0') < pv('1.2.1.0-r4')
True
>>>
1.1.0 yerine yüklemek için seçiyor mu neden böyle bir fikriniz var mı?
CEVAP
Bu mükemmel bir soru. Beni çözmek sonsuza kadar sürdü. Bu benim için çalışan bir çözüm
Eğer pip
bulabilirse görünüşe göre, paketi yerel bir sürümünü, pip
uzak olanlar için yerel sürümlerini tercih eder. Ben bile internetten bilgisayarımı ve pip
hala başarıyla paketi yüklü, ve hatta, kaynağı belli ki yerel olduğunu şikayet etmedi tekrar denedim, bağlantı kesildi.
Bu gerçekten kafa karıştırıcı kısmı, benim açımdan, o pip
bulunan yeni sürümleri pypi, onlara bildirdi ve sonra ileri gitti ve yeniden yüklü eski sürümü neyse ... arggh. Ayrıca, ne yaptığını ve neden bana söylemedi.
Nasıl bu sorunu çözmek mi?
pip
ayrıntılı çıktı -v
bayrağı kullanarak verebilir ... ama yeterli değil. -Ed ben RTFM -v
birden çok kez, daha ayrıntılı çıktı için 3x kadar yapabilirsiniz dedi. Ben de öyle yaptım:
pip install -v -v -v <my_package>
Sonra çıktı, baktım. Bir satır dikkatimi çekti:
/Tmp/kaynak-yapı-kök pip/ ihtiyaç < karşılayan 0.0.11, sürüm;my_package> vardır
Sonra pip
pypi en yeni sürüm yüklü olduğu dizini sildim.
Neden benim program tam olarak 8192 el...
Neden Java Vector sınıfı eski veya kul...
Neden stil iOS7 içinde UİTableViewStyl...
Neden't Java operatör yükleme sun...
nasıl NuGet üzerinden paket eski bir s...