Son zamanlarda pip's kullanırken bir sorunla karşılaştı-I ı belge yerde istediğini bayrağı:
-Iwill not devam etmeden önce varolan paketi kaldırmak; sadece eskisinin üzerine kuracaktır. Bu, sürümler arasında silinmesi gereken dosyaların yerinde bırakılacağı anlamına gelir. Bu dosyalar diğer yüklü modüllerle adları paylaşırsa, garip davranışlara neden olabilir.
Örneğin, adında bir paket olduğunu varsayalım package. packageS dosyalarından birinde kullanırlar import datetime. Şimdi, package@2.0.0bu standart kütüphane datetimemodülüne işaret ediyor , ancak standart kütüphane sürümünün yerine package@3.0.0bir yerel datetime.pyolarak eklediler (herhangi bir nedenle).
Şimdi koştuğumu söyleyelim pip install package==3.0.0, ama daha sonra aslında sürümü istediğimi fark ettim 2.0.0. Şimdi çalıştırırsam pip install -I package==2.0.0, eski datetime.pydosya kaldırılmaz, bu nedenle yapılacak çağrılar import datetimeyanlış modülü içe aktarır.
Benim durumumda, bu paketin daha yeni sürümü yalnızca Python 3 ile uyumlu bir dosya eklediğinden ve Python 2'yi desteklemek için paket sürümlerini düşürdüğümde garip sözdizimi hatalarıyla ortaya çıktı, yalnızca Python-3 modülünü içe aktarmaya devam ettim.
Buna dayanarak, -Iyüklü paket sürümlerini güncellerken eski paketin kaldırılmasının her zaman tercih edildiğini iddia ediyorum .
pip install MySQL_python==1.8.9