<p>pip keluar dengan sukses meskipun kendala tidak kompatibel</p>

Dibuat pada 3 Sep 2019  ·  3Komentar  ·  Sumber: pypa/pip

Lingkungan

  • versi pip: 19.2.3
  • Versi Python: 3.7.4
  • OS: macOS 18.7.0

Ini juga direproduksi menggunakan docker run python:3 .

Keterangan

pip menginstal paket dengan dependensi yang rusak, jika file kendala menentukan versi yang tidak kompatibel. Pesan kesalahan ditampilkan, tetapi kode keluarnya adalah 0 .

Misalnya, environs 5.2.1 membutuhkan marshmallow>=2.7.0 , tetapi pip menginstalnya dengan marshmallow 2.6.0 jika yang terakhir ditentukan dalam file batasan.

Perilaku yang diharapkan

pip seharusnya tidak menginstal paket, dan keluar dengan kegagalan.

Cara Mereproduksi

  1. Buat constraint.txt dengan marshmallow==2.6.0
  2. Buat requirements.txt dengan environs==5.2.1
  3. Jalankan pip install -r requirements.txt -c constraints.txt

Keluaran

$ docker run --rm -ti python:3 sh
# python -V
Python 3.7.4
# pip -V
pip 19.2.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
# uname -a
Linux 4d4f16cc965f 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64 GNU/Linux
# echo marshmallow==2.6.0 > constraints.txt
# echo environs==5.2.1 > requirements.txt
# pip install -r requirements.txt -c constraints.txt
Collecting environs==5.2.1 (from -r requirements.txt (line 1))
  Downloading https://files.pythonhosted.org/packages/5f/c9/6b576b8b374dfe78d9435988e6a53497822f31b9da5bdd446343ad1a4d1b/environs-5.2.1-py2.py3-none-any.whl
Collecting marshmallow==2.6.0 (from -c constraints.txt (line 1))
  Downloading https://files.pythonhosted.org/packages/33/44/c3bdd4222909b6452ebe5c028ea5dbe7e9409307b3b933026218c677fcf1/marshmallow-2.6.0-py2.py3-none-any.whl (44kB)
     |████████████████████████████████| 51kB 729kB/s
Collecting python-dotenv (from environs==5.2.1->-r requirements.txt (line 1))
  Downloading https://files.pythonhosted.org/packages/57/c8/5b14d5cffe7bb06bedf9d66c4562bf90330d3d35e7f0266928c370d9dd6d/python_dotenv-0.10.3-py2.py3-none-any.whl
ERROR: environs 5.2.1 has requirement marshmallow>=2.7.0, but you'll have marshmallow 2.6.0 which is incompatible.
Installing collected packages: marshmallow, python-dotenv, environs
Successfully installed environs-5.2.1 marshmallow-2.6.0 python-dotenv-0.10.3
# echo $?
0
duplicate auto-locked awaiting response support

Semua 3 komentar

Ini pada dasarnya sama dengan #988 (lihat juga: #5137).

Pip mengetahui persyaratan berdasarkan yang pertama kali ditemui (meskipun itu dapat berubah tanpa pemberitahuan). Ketika file persyaratan dan file kendala diuraikan, kami berakhir dengan environs==5.2.1 sebagai persyaratan dan marshmallow==2.6.0 sebagai kendala. Ketika environs sedang diproses, marshmallow diperhatikan sebagai ketergantungan dan entri yang ada ( marshmallow==2.6.0 ) ditandai sebagai persyaratan, dan versi yang ada adalah yang digunakan untuk instalasi . Saya pikir menggunakan nilai yang diberikan pengguna (bahkan jika hanya sebagai kendala) mungkin merupakan perilaku paling benar yang dapat kita miliki di sini.

Kesalahan yang dilacak sama dengan yang akan dilacak untuk pip install environs==5.2.1 marshmallow==2.6.0 atau pemanggilan terpisah seperti pip install environs==5.2.1 && pip install marshmallow==2.6.0 .

Ini ditambahkan di #5000. Alasan kode keluar bukan 1, adalah kompatibilitas ke belakang.

Jika Anda ingin mengetahui secara terprogram bahwa ini terjadi, Anda ingin menjalankan pip check .

Masalah ini telah ditutup secara otomatis karena belum ada tanggapan atas permintaan kami untuk informasi lebih lanjut dari penulis asli. Dengan hanya informasi yang sedang dalam masalah, kami tidak memiliki cukup informasi untuk mengambil tindakan. Silakan hubungi jika Anda memiliki atau menemukan jawaban yang kami butuhkan sehingga kami dapat menyelidiki lebih lanjut.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat