ในrequirements.txt
ไลบรารี Python ที่ฉันใช้อยู่มีการระบุข้อกำหนดอย่างใดอย่างหนึ่งเช่น:
mock-django~=0.6.10
อะไร~=
หมายถึง?
ในrequirements.txt
ไลบรารี Python ที่ฉันใช้อยู่มีการระบุข้อกำหนดอย่างใดอย่างหนึ่งเช่น:
mock-django~=0.6.10
อะไร~=
หมายถึง?
คำตอบ:
หมายความว่าจะเลือกแพคเกจเวอร์ชันล่าสุดมากกว่าหรือเท่ากับ 0.6.10 แต่ยังอยู่ในเวอร์ชัน 0.6. * ดังนั้นจะไม่ดาวน์โหลด 0.7.0 เป็นต้น ช่วยให้แน่ใจว่าคุณจะได้รับการแก้ไขด้านความปลอดภัย แต่ยังคงความเข้ากันได้แบบย้อนหลังหากผู้ดูแลแพ็กเกจเคารพการกำหนดเวอร์ชันความหมาย (ซึ่งระบุว่าการเปลี่ยนแปลงที่ทำลายควรเกิดขึ้นเฉพาะในเวอร์ชันหลักเท่านั้น)
หรือตามที่ PEP 440 กล่าวไว้:
สำหรับตัวระบุรุ่นที่ระบุ VN ส่วนคำสั่งรีลีสที่เข้ากันได้จะเทียบเท่ากับคู่ของประโยคเปรียบเทียบ:
>= V.N, == V.*
นั่นคือ 'ปล่อยเข้ากันได้' รุ่นที่ระบุ
เทียบเท่ากับ: mock-django >= 0.6.10, == 0.6.*
และเป็นวิธีที่เป็นระเบียบเรียบร้อยในการจับคู่เวอร์ชันที่คาดว่าจะเข้ากันได้ ในภาษาอังกฤษธรรมดามันเหมือนกับการพูดว่า: "ฉันต้องการรุ่นของ mock-django ซึ่งอย่างน้อยก็ใหม่เท่า 0.6.10 แต่ก็ไม่ใช่ของใหม่จนเข้ากันไม่ได้กับมัน"
หากคุณไม่แน่ใจเกี่ยวกับหมายเลขเวอร์ชันทั้งหมดนี้การดูอย่างรวดเร็วเกี่ยวกับโครงร่างเวอร์ชัน PEP440 จะช่วยให้คุณเข้าใจได้!
~ = หมายถึงเวอร์ชันที่เข้ากันได้ ไม่น้อยกว่า 0.6.10 และสูงกว่า (0.6. *)
ประโยครุ่นที่เข้ากันได้ประกอบด้วยตัวดำเนินการรีลีสที่เข้ากันได้ ~ = และตัวระบุเวอร์ชัน ตรงกับเวอร์ชันของผู้สมัครที่คาดว่าจะเข้ากันได้กับเวอร์ชันที่ระบุ
คุณสามารถอ่านเพิ่มเติมได้ที่นี่: https://www.python.org/dev/peps/pep-0440/#compatible-release