ตั้งแต่ pip 20.3 เป็นต้นไป มีการนำ dependency resolver (ตัวแก้ไขการพึ่งพาเวอร์ชัน) แบบใหม่มาใช้และตั้งเป็นค่าเริ่มต้น
(pyfound.blogspot.com)- ความขัดแย้งระหว่างการแก้ไข dependencies ลดลงอย่างมาก
ในอดีต (pip 20.0) ผลลัพธ์ของ pip install "six<1.12" "virtualenv==20.0.2" คือมีการติดตั้ง six==1.11 แต่ virtualenv==20.0.2 ต้องการ six>=1.12.0,<2 ดังนั้นนี่จึงเป็นพฤติกรรมที่ไม่ถูกต้อง
ตั้งแต่ตอนนี้ (20.3) เป็นต้นไป จะไม่ติดตั้งอะไรเลยและปฏิเสธการติดตั้ง
- จะเข้มงวดมากขึ้น
- หากพยายามติดตั้งแพ็กเกจสองตัวพร้อมกันที่มี dependencies ระดับล่างไม่เข้ากัน การติดตั้งจะถูกปฏิเสธ
- ผลจากการเปลี่ยนแปลงนี้ คำสั่งสองชุดด้านล่างอาจไม่ได้ติดตั้งแพ็กเกจชุดเดียวกัน
-
pip install x && pip install y -
pip install x y
- ยังมีการเปลี่ยนแปลงอื่น ๆ อีกหลายอย่าง เช่น Constraints(lockfile), editable, การจับคู่
==, การบังคับใช้ hash-checking เป็นต้น
dependency resolver ใหม่นี้สามารถปิดได้ด้วย --use-deprecated=legacy-resolver และจะรองรับไปจนถึงเดือนมกราคม 2021 (pip 21.0 release candidate)
วิธีแก้ปัญหาเฉพาะหน้า (workaround) ที่เคยใช้อยู่อาจไม่ทำงานอีกต่อไป ในบทความต้นฉบับมีแนวทางแก้ไขหลายแบบให้ดูประกอบ
ยังไม่มีความคิดเห็น