Pip: Pip tidak memperbarui dependensi yang terlalu lama saat menginstal banyak paket

Dibuat pada 4 Okt 2019  ·  3Komentar  ·  Sumber: pypa/pip

Deskripsi
Saya akan membahas paket tertentu, karena ini telah diamati di alam liar (HypothesisWorks / hipotesis # 2113): kami baru-baru ini memperbarui ketergantungan install_requires pada attrs>=16.0 menjadi attrs>=19.2 , pada dasar bahwa menginstal Hipotesis versi terbaru akan memperbarui atribut pengguna juga.

  • pip install hypothesis memang berfungsi.
  • pip install pytest hypothesis berfungsi jika versi attrs belum diinstal.

Sepertinya, ketika beberapa paket dicantumkan dalam perintah instal, kompatibilitas dependensi yang sudah diinstal hanya dievaluasi untuk paket pertama yang terdaftar dan untuk paket yang lebih baru kehadirannya tetapi bukan versi dependensi yang diperiksa. Ini juga mempengaruhi penggunaan file persyaratan.

Perilaku yang diharapkan

Terlepas dari paket lain yang terdaftar untuk diinstal atau sudah ada, pip install hypothesis seharusnya menghasilkan seperangkat paket yang kompatibel yang diinstal atau pesan kesalahan - bukan lingkungan yang rusak.

Bagaimana cara bereproduksi

[tox]
skipsdist=True
[testenv]
deps =
    pip
    attrs==19.1.0
commands =
    ## Execute the problematic install command
    # pip install hypothesis  # works
    # pip install hypothesis pytest  # works
    pip install pytest hypothesis  #  fails, as does `pip install attrs hypothesis` !
    # pip install --upgrade pytest hypothesis  # works

    ## Check that the installed packages are compatible
    python -c "import hypothesis"

Kemudian jalankan tox --recreate untuk, buat ulang lingkungan virtual dan jalankan perintah.

(Dan terima kasih kepada semua orang yang bekerja dengan pip , ini sangat berharga dan sangat dihargai 😍)

dependency resolution auto-locked bug

Semua 3 komentar

Terima kasih atas detail dan pereproduksi yang mudah! Sangat dihargai!

Ini pada dasarnya # 988. Sebagai ringkasan singkat:

  • pip tidak mencetak pesan dengan warna merah, dengan huruf kapital ERROR .
    ERROR: hypothesis 4.38.2 has requirement attrs>=19.2.0, but you'll have attrs 19.1.0 which is incompatible.
  • Gunakan pip check sebagai bagian dari CI Anda, untuk memastikan pip tidak melakukan sesuatu yang bodoh.
  • Gunakan pip-tools (wraps pip dengan resolver yang lebih baik) atau pipenv (yang menggunakan pip-tools ) atau poetry (yang memiliki resolver sendiri), untuk menghindari ini quirk dari resolver pip.

Ah, begitu! Saya telah memeriksa beberapa halaman masalah terakhir, tetapi tidak ada yang sejauh itu ... dengan senang hati menutup masalah ini sebagai duplikat, karena menurut saya tidak ada informasi tambahan apa pun?

Menutup sebagai duplikat dari # 988.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat