1. ความขัดแย้งระหว่างการแก้ไข 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) เป็นต้นไป จะไม่ติดตั้งอะไรเลยและปฏิเสธการติดตั้ง

  1. จะเข้มงวดมากขึ้น
  • หากพยายามติดตั้งแพ็กเกจสองตัวพร้อมกันที่มี dependencies ระดับล่างไม่เข้ากัน การติดตั้งจะถูกปฏิเสธ
  1. ผลจากการเปลี่ยนแปลงนี้ คำสั่งสองชุดด้านล่างอาจไม่ได้ติดตั้งแพ็กเกจชุดเดียวกัน
  • pip install x && pip install y

  • pip install x y

  1. ยังมีการเปลี่ยนแปลงอื่น ๆ อีกหลายอย่าง เช่น Constraints(lockfile), editable, การจับคู่ ==, การบังคับใช้ hash-checking เป็นต้น

dependency resolver ใหม่นี้สามารถปิดได้ด้วย --use-deprecated=legacy-resolver และจะรองรับไปจนถึงเดือนมกราคม 2021 (pip 21.0 release candidate)

วิธีแก้ปัญหาเฉพาะหน้า (workaround) ที่เคยใช้อยู่อาจไม่ทำงานอีกต่อไป ในบทความต้นฉบับมีแนวทางแก้ไขหลายแบบให้ดูประกอบ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น