เราควรใช้ python 2.6 หรือ 2.7 หรือ 3.x หรือไม่? [ปิด]


25

หลามเวอร์ชันที่ฉันใช้อยู่คือ 2.6และมี 2.7 และ 3.x ฉันมักจะใช้ python สำหรับโปรแกรม / ตัวอย่างเล็ก ๆ น้อย ๆ ฉันรู้ว่ามีความแตกต่างที่สำคัญระหว่าง 2.x และ 3.x ฉันอยากรู้จริงๆว่าถ้าฉันจะสร้างโครงการที่ใหญ่กว่าด้วย python ฉันควรใช้ python เวอร์ชันใด

ฉันควรอัพเกรดเป็น 2.7 หรือไปที่ 3.x หรืออยู่ที่ 2.6?

การตัดสินใจควรขึ้นอยู่กับข้อกำหนดเหล่านี้:

  1. จำนวนผู้ใช้ในอินเทอร์เน็ตในฐานะชุมชน ผู้ใช้จำนวนมากหมายถึงแพ็คเกจโอเพ่นซอร์สที่มากขึ้นและช่วยพวกเขา

  2. ฟังก์ชั่น

  3. การสนับสนุนจากทีมพัฒนาอย่างเป็นทางการ

  4. ความเข้ากันได้สำหรับโมดูล / แพ็คเกจที่มีอยู่

ขอบคุณ!


5
ใครช่วยชี้ให้เห็นการเปลี่ยนแปลงที่เป็นประโยชน์ใด ๆ ที่กระทำโดย python 3.x
lamwaiman1988

1
คุณพูดถึงว่าคุณรู้ว่าการทำงานร่วมกันได้กับโมดูลที่มีอยู่เป็นปัญหา แต่คุณไม่ต้องบอกเราว่าโมดูลที่มีอยู่อาศัยของคุณอยู่ คำถามนี้ตอบไม่ได้สวยมาก
Wooble

2
ปิดหัวข้อ คำแนะนำและกอริลลา vs ฉลามในหนึ่งคำถามว้าว!

3
คำถามนี้และคำตอบของมันจะมีประโยชน์สำหรับหน้าต่างเล็ก ๆ ของเวลา ตอนนี้สิ่งที่สมเหตุสมผลอาจไม่สมเหตุสมผลมากนักในขณะนี้เนื่องจาก 3.x กลายเป็นผู้ใหญ่มากขึ้น
ไบรอัน Oakley

สังเกตว่า (a) คำถามนี้ยังมีความเกี่ยวข้องในปี 2014 (เช่น RobotFramework ไม่สามารถใช้งานได้กับ Python 3) และ (b) การปิดคำถามนี้จะทำให้หน้านี้ค้างเนื่องจาก - แม้ว่าจะมีผลการค้นหาของ Google สูง - คำตอบใหม่ ไม่สามารถโพสต์
Bob Stein

คำตอบ:


27

ฉันจะแนะนำ Python 2.7 ด้วยตัวเอง เป็นรุ่นล่าสุดในซีรีย์ Python 2.x โมดูล Python ส่วนใหญ่ทำเพื่อใช้งานกับ Python 2.x มีการเคลื่อนไหวที่จะลองและย้ายไปหลาม 3 แต่ใด ๆ ของงูหลาม 3 โมดูลเขียนขึ้นสำหรับทั้ง 2 และ 3 อย่าลืมไม่ได้ใช้ลูกเล่นเก่าที่ไม่สามารถใช้ได้ในหลาม 3 เพื่อให้คุณสามารถเพียง 2to3 รหัสของคุณ ทำให้มันทำงานบน Python 3

ถ้าคุณไปกับ Python 3 คุณเป็นหนึ่งในผู้เริ่มใช้และคุณจะต้องบอกให้คนอื่นดาวน์โหลด Python 3 (คอมพิวเตอร์จำนวนมากจะมี Python 2) ในทางกลับกันคุณลักษณะใหม่กำลังจะมาถึง Python 3 เท่านั้น Python 2 นั้นเป็นการบำรุงรักษาอย่างถาวร ดังนั้นฉันจะไม่แนะนำยังคงใช้ Python 2 ใน 10 ปี

หากคุณต้องการจับตาดูแพ็กเกจ Python และความเข้ากันได้กับ Python 3 คุณสามารถจับตาดูเว็บไซต์นี้ได้ที่: http://python3wos.appspot.com/


django ไม่สนับสนุน 3.x? ดังนั้นผู้ใช้ที่คุ้นเคยกับ django ไม่สามารถใช้ 3.x ได้?
lamwaiman1988

เฮ้ปกติเมื่อมีการเปิดตัวเวอร์ชั่นใหม่หมายความว่าดีกว่าเวอร์ชั่นก่อนหน้า และทำไมไพ ธ อนจึงออกวางจำหน่ายในซีรีย์ 2.x และอีกซีรีย์ 3.x ความแตกต่างที่เกิดขึ้นจริงในพวกเขาคืออะไร
ร้อน

4
Python 3 ทำการเปลี่ยนแปลงบางอย่างกับภาษาที่เป็นประโยชน์ แต่ไม่เข้ากันได้กับคุณสมบัติบางอย่างใน Python 2 ดังนั้นบางสิ่งจึงถูกลบออกและมีการเพิ่มบางอย่าง (และสิ่งที่ถูกลบทำให้ไม่สามารถทำงานร่วมกันได้)
jsternberg

+1 สำหรับ 2.7 อัตราส่วนที่ดีที่สุดของความเข้ากันได้ (อย่างน้อยสำหรับไลบรารีที่ฉันใช้) จนถึง 3 จะแพร่หลายมากขึ้น
wildpeaks

@Ashinkn การเปลี่ยนแปลงที่สามารถพบได้ที่นี่docs.python.org/3.0/whatsnew/3.0.html การเปลี่ยนการทำลายความเข้ากันได้ที่สำคัญเป็นการเปลี่ยนจากการใช้ Unicode (ตรงข้ามกับ ASCII) เป็นชนิดสตริงเริ่มต้น จุดที่ผู้คนใช้สตริงเป็น byte [] ก่อนมีชนิด bytearray ใหม่ที่ใช้แทน นอกจากนี้สตริง 2x ใด ๆ ที่กำหนดอย่างชัดเจนว่าเป็นยูนิโค้ดจะต้องเปลี่ยนเป็นสตริงปกติ
Evan Plaice

19

ความคิดเห็นของฉันคือเราต้องเริ่มนำผู้คนไปที่ Python 3 และหากมีห้องสมุดที่ไม่สามารถใช้งานร่วมกับ Python 3 ได้เราต้องเริ่มทำเช่นนั้นไม่ใช่กรณี

Python 3 เป็นอนาคตของภาษาและยิ่งเราเขียนโค้ดมากเท่าไหร่ก็ยิ่งดีเท่านั้น


สิ่งที่เราต้องการคือล่ามตัวเดียวที่เข้ากันได้กับงูหลามทั้งสองรุ่นและสามารถแยกวิเคราะห์มันได้อย่างชาญฉลาด กล่าวคือล่ามจะรวบรวมทั้ง python2 และ python3 เป็นไบต์เดียวกันเพื่อให้เข้ากันได้ทำให้สามารถใช้ python3 กับไลบรารี่ python2 ได้ ถ้า C, C ++ และ Java สามารถทำได้ Python ก็สามารถทำได้เช่นกัน
Braden ที่ดีที่สุด

4

Django ตอนนี้ "ทดลอง" สนับสนุนหลาม 3.2+ ที่คุณสามารถดูจากโพสต์ของพวกเขาที่นี่

ระบุว่าและความจริงที่ว่า Python 3.x เป็นอนาคตของภาษาฉันจะบอกว่า Python 3 ดีที่สุดในตอนนี้


2

สำหรับแต่ละโครงการตรวจสอบว่าไลบรารีทั้งหมดที่จำเป็นสำหรับโครงการได้รับการสนับสนุน python 3.x หรือไม่จากนั้นใช้ python 3.x เพราะเป็นอนาคตและเป็นเวอร์ชั่นที่เสถียรที่สุด

ใช้สิ่งที่คุณต้องการใช้เพื่อความเข้ากันได้ของไลบรารี


2

ไม่สำคัญว่าคุณจะใช้ Python 2.7 หรือ Python 3 หากคุณไม่ใช้ฟีเจอร์เก่า ๆ ใน Python 2.7 คุณสามารถเพียงแค่ 2to3 โค้ดของคุณเพื่อให้มันทำงานบน Python 3


0

ก่อนหน้านี้ฉันอยู่ในเรือลำเดียวกันและนี่คือสิ่งที่ฉันพบ สามารถติดตั้ง Python 2.6, 2.7 และ 3.2 ได้แบบคู่ขนานโดยใช้ MacPorts และสามารถสลับได้อย่างง่ายดาย (ฉันเป็นผู้ใช้ Mac) มองหาทางเลือกอื่นสำหรับ Macports สำหรับแพลตฟอร์มของคุณ


0

จนกว่าบริดจ์จะได้รับการพัฒนาภายใน 3.x เพื่อให้สามารถใช้งานแพ็คเกจ 2.7 แบบโปร่งใสการย้ายจะเต็มไปด้วยอันตรายเพราะภาษาเป็นสิ่งที่เกี่ยวกับสิ่งที่ได้รับการสนับสนุน การพิจารณาอย่างเป็นทางการและความบริสุทธิ์นั้นเล็กน้อยเมื่อเปรียบเทียบ สะพานโปร่งใสดังกล่าวไม่น่าจะเกิดขึ้นจากความดื้อรั้นรุนแรงและไม่สนใจฐานผู้ใช้


สะพานโปร่งใสเช่นนี้ไม่สามารถบรรลุได้ แพคเกจ 2to3 และ 6 ให้การเชื่อมต่อที่เพียงพอ แต่อยู่ไกลจากความโปร่งใส
Martijn Pieters
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.