ฉันควรเปลี่ยนรหัส Python ของฉันหรือไม่หากฉันอัพเกรด Ubuntu


11

ฉันมีซอฟต์แวร์ที่ฉันได้พัฒนาใน Python 3 มาหลายปีแล้ว จนถึงวันนี้ฉันใช้ Ubuntu Desktop 11.04 แต่ตอนนี้ฉันต้องการย้ายไปเป็น Ubuntu รุ่นที่สูงขึ้น

ฉันต้องอยู่บน Ubuntu 11.04 หรือไม่เพื่อที่ฉันจะได้ไม่ต้องเปลี่ยนบางส่วนของซอร์สโค้ดของซอฟต์แวร์ของฉันเนื่องจากมีการเปลี่ยนแปลงใหม่ใน Ubuntu รุ่นที่สูงกว่า

Ubuntu รุ่นล่าสุดจะไม่ส่งผลกระทบต่อซอฟต์แวร์ของฉัน แต่อย่างใด


18
นี่ไม่ใช่เรื่องง่ายสำหรับฉัน: อัปเดตเป็น 14.04 หากมีสิ่งใดเสียหายในซอฟต์แวร์ของคุณ: แก้ไข นี่เป็นแบบฝึกหัดที่ยอดเยี่ยมในการหลีกเลี่ยงซอฟต์แวร์เน่า ประเภทของปัญหาที่คุณอาจพบคือการพึ่งพา คุณสามารถทดสอบสิ่งเหล่านี้ล่วงหน้าใน virtualenv
— don.joey

6
@begueradj ฉันไม่ต้องการลดความพยายามที่จะทำหรือลบล้างเหตุผลของคุณ เป็นเพียง: ไม่ว่าคุณจะพยายามหรือซอฟต์แวร์ของคุณจะไม่นานอีกต่อไป คุณสามารถอัปเกรดเป็น 12.04 แต่การใช้งานเวอร์ชัน EOL เป็นปัญหา และปัญหาจะไม่หายไปโดยตัวของมันเอง ...
— don.joey

5
@begueradj - โปรดแก้ไขคำถามของคุณและให้รายละเอียดบางอย่างเกี่ยวกับซอฟต์แวร์ของคุณ อธิบายสิ่งที่มันทำ อธิบายว่าคุณใช้ชุดเครื่องมือใด (เช่น GTK? QT?) อธิบายว่าซอฟต์แวร์ของบุคคลที่สามนั้นขึ้นอยู่กับอะไร (เช่น firefox รุ่นใดรุ่นหนึ่ง? Webkit?) อธิบายถึงการพึ่งพาซอฟต์แวร์เพื่อสร้างซอฟต์แวร์ของคุณ หากไม่มีข้อมูลข้างต้นคุณจะไม่ได้รับคำตอบเฉพาะสำหรับคำถามของคุณ คุณจะได้รับคำตอบทั่วไปตามที่คุณมีอยู่ในปัจจุบัน
— fossfreedom

3
11.04 ถึงจุดสิ้นสุดของชีวิตเมื่อหนึ่งปีครึ่งที่ผ่านมา .. คุณควรอัพเกรดมานานแล้วตั้งแต่
— psusi

คำตอบ:


3

จากความคิดเห็นของคุณคุณได้ทดสอบซอฟต์แวร์ของคุณกับ VM ซึ่งเป็นข่าวดี

แต่ในฐานะนักพัฒนาแอพพลิเคชั่นคุณจะต้องเตรียมที่จะดัดแปลงโค้ดของคุณให้เป็นรีลีสใหม่มิฉะนั้นมันจะถูกยกเลิกอย่างรวดเร็ว

ตอนนี้เพื่อให้แน่ใจว่าจะยังคงทำงานร่วมกับรุ่นใหม่ของ Ubuntu ผมขอแนะนำให้คุณรักษามันเป็นแพคเกจและให้ชุดทดสอบที่สมบูรณ์แบบสำหรับการใช้งานของคุณและเรียกมันว่าในช่วงการสร้างกระบวนการของแพคเกจ (เช่นโดยการโทรsetup.py testของคุณในdebian/rules override_dh_auto_testส่วน )

คุณสามารถตั้งค่าการสร้างรายวันของแพคเกจของคุณใน ppa โดยใช้ bzr-สร้างสูตร ด้วยวิธีนี้คุณจะได้รับแจ้งถึงความล้มเหลวในการสร้างทั้งหมดที่เกิดจากเวอร์ชันซอฟต์แวร์ใหม่หรือการพึ่งพาที่ไม่สมบูรณ์

มักจะมีการเปิดตัวรุ่นใหม่เพื่อการพัฒนาไม่กี่วันหลังจากการประกาศอย่างเป็นทางการ ดูที่เราppaหน้าUtopicตอนนี้เป็นส่วนหนึ่งของชุด distro ที่เรากำลังสร้างสำหรับ:

ป้อนคำอธิบายรูปภาพที่นี่


3
ทำไมคุณมี 2 คำตอบสำหรับคำถามเดียวกันนี้ นอกจากนี้ autopkgtest ก็ไม่ทำงานเช่นนั้น และสิ่งนี้ตอบคำถามได้ดีกว่าหรือแม่นยำกว่าคำถามอื่น ๆ อย่างไร
— dobey

ฉันโพสต์คำตอบที่สองในช่วงเวลาเงินรางวัล ในครั้งนี้จะมุ่งเน้นเกี่ยวกับวิธีการป้องกันปัญหาการปรับปรุงหวังที่จะนำสิ่งที่คาดว่าจะ OP จริงๆ (ตั้งแต่ต่อความคิดเห็นของเขาผมรู้ว่าใบสมัครของเขาทำงานได้อย่างถูกต้องกับ 14.04)
— ซิลแว็ง Pineau

ฉันแนะนำให้คุณถามคำถามอื่นเพื่อตอบคำถามของคุณ BTW ฉันจะแก้ไขส่วน autopgktest @dobey ถูกต้องใช้งานไม่ได้
— Braiam

@dobey autopkgtest แก้ไข / ลบออกจากคำตอบของฉัน
— Sylvain Pineau

@Braiam autopkgtest แก้ไข / ลบออกจากคำตอบของฉัน
— Sylvain Pineau

13

ไม่คุณไม่ควรอยู่ที่ 11.04 นี่เป็นจุดสิ้นสุดของการให้การสนับสนุนตั้งแต่ตุลาคม 2555 หากคุณต้องการการสนับสนุนใด ๆ เลยคุณต้องอัปเกรดเป็นอย่างน้อย 12.04 (ซึ่งจะรองรับอีกสามปี)

นอกจากนี้อูบุนตูเวอร์ชันใหม่กว่ายังรวมถึง Python 3.x เป็นค่าเริ่มต้นโดยมีเป้าหมายในการลบ Python 2.x ออกจากการติดตั้งเริ่มต้นอย่างสมบูรณ์

คุณอาจมีปัญหากับการเรียกใช้รหัสของคุณภายใต้ Python 3.x รุ่นใหม่กว่า แต่โดยทั่วไปแล้วจะไม่มีปัญหา ในฐานะนักพัฒนาคุณควรเตรียมพร้อมรับมือกับปัญหาดังกล่าวไม่ว่าคุณจะใช้ Ubuntu เวอร์ชันใด ไลบรารีใด ๆ ที่คุณใช้หรือ Python เองอาจมีจุดบกพร่องซึ่งโค้ดของคุณขึ้นอยู่กับพฤติกรรมและหากข้อผิดพลาดนั้นได้รับการแก้ไขอาจทำให้โปรแกรมของคุณทำงานแตกต่างจากที่คุณคาดไว้ก่อนหน้านี้


11

ยากที่จะให้คำตอบที่ชัดเจนโดยไม่มีคำอธิบายใบสมัครของคุณ เนื่องจากคุณใช้ Python3 อย่างน้อยคุณจะไม่ถูก จำกัด ด้วยสาขา Python2.x (จะไม่มี Python 2.8)

ขณะนี้มีคำเตือนบางอย่างที่อาจใช้กับแอปพลิเคชันของคุณด้วย Python3 แพ็คเกจจำนวนมากเลิกใช้แล้วเนื่องจากวิธีที่ดีที่สุดในการเข้าถึง GLib / GObject / GIO / GTK + คือการใช้Python GObject Introspection (aka PyGI)

ในที่สุดก็ยังมีความแตกต่างเล็กน้อยระหว่าง python3 เวอร์ชั่นอื่น (เช่น Argparse ไม่ทำงานเหมือนกันกับ python 3.2 และ 3.3

สิ่งหนึ่งที่คุณสามารถลองได้คือการบูต VM 14.04 และทดสอบโค้ดของคุณด้วย python3.4


ฉันจะไม่เปลี่ยนรุ่น Python ของฉัน (เป็นไปไม่ได้) ฉันกังวลมากขึ้นว่าเวอร์ชัน Ubuntu ใหม่จะมีผลกับซอร์สโค้ดของซอฟต์แวร์ของฉันอย่างไร

คุณสนับสนุนเวอร์ชัน 3.2 อย่างเป็นทางการรุ่นใด
— Sylvain Pineau

ฉันใช้รุ่น 3.1.3

ฉันขอแนะนำให้คุณทดสอบแอปของคุณด้วย python3.2 (บูต 12.04 VM และsudo apt-get install python3) นอกจากนี้คุณยังสามารถตรวจสอบเอกสารเผยแพร่ของ python3.2 แต่เท่าที่ฉันรู้ python3.2 เป็นเพียงตันของการปรับปรุงสาขากว่า 3.1.x (ที่ argparse เป็นหนึ่งในพวกเขา)
— ซิลแว็ง Pineau

1
สำหรับโปรแกรม python 3 เวอร์ชันของ python ที่ได้รับการอัพเกรดนั้นเป็นวิธีการที่มีประสิทธิภาพมากกว่าในการทำงานที่ซับซ้อน เช่นPython3.4แนะนำasyncioและมันจะช่วยให้ฉันสามารถกำจัดปัญหา glib mainloop / เธรดที่ซับซ้อนได้จริงๆ ฉันใส่บันทึกเกี่ยวกับการโต้เถียงเพราะฉันถูกขังอยู่ในการเปลี่ยนแปลงเมื่อเร็ว ๆ นี้ แต่มันไม่ใช่เรื่องใหญ่ ดังนั้นทดสอบ sw ของคุณกับเวอร์ชั่นล่าสุดอีกครั้ง (3.2 แล้ว 3.4 กับ 14.04) แต่ก็เหมือนกับคนอื่น ๆ ที่ตอบว่าคุณไม่ควรเจอปัญหาสำคัญ
— Sylvain Pineau

2

ขึ้นอยู่กับรหัสของคุณหากรหัสของคุณใช้ไลบรารีที่ไม่ได้รับการสนับสนุนคุณไม่สามารถโยกย้ายไปยังระบบปฏิบัติการเวอร์ชันใหม่ได้อย่างง่ายดาย แต่ส่วนใหญ่จะไม่มีปัญหาเกิดขึ้น


คุณช่วยอธิบายฉันได้อย่างไรว่าทำไมห้องสมุดไพ ธ อนขึ้นอยู่กับเวอร์ชันของ Ubuntu ที่กำหนด?

@begueradj มันไม่ได้ แต่ถ้าคุณใช้ไลบรารี Python ที่ไม่ได้รับการดูแลรักษาอีกต่อไปมันอาจถูกลบจากคลังเก็บ Ubuntu ในบางจุดและไม่สามารถใช้ได้ในรุ่นที่ใหม่กว่า รหัสของคุณจะล้มเหลว แน่นอนคุณสามารถติดตั้งแพ็คเกจไลบรารีจาก Ubuntu รุ่นเก่าหรือจากแหล่งที่มาเพื่อแก้ไขปัญหาแม้ว่าคุณจะไม่ได้รับการปรับปรุงใด ๆ หรือคุณสามารถแก้ไขรหัสเพื่อใช้ไลบรารีอื่นหรือเขียนรหัสของคุณเองเพื่อทำหน้าที่เดียวกัน
— dobey

ตามที่ @dobey กล่าวว่าห้องสมุดบางแห่งไม่ได้รับการบำรุงรักษาอีกต่อไป ก่อนหน้านี้ฉันมีปัญหากับ Turbogears เมื่อฉันอัพเกรด Ubuntu เป็นรุ่นที่ใหม่กว่า
— มหาสมุทร

0

Ubuntu 14.04 มีแพ็คเกจ python3 ดังนั้นจึงไม่ใช่ปัญหา apt-cache search python3จะแสดงให้คุณเห็น นอกเหนือจากนั้นคุณจะต้องอ่านบันทึกประจำรุ่นสำหรับ Ubuntu แต่ละรุ่นระหว่าง 11.04 และ "รุ่นที่สูงกว่า" และค้นหาการเปลี่ยนแปลงที่จะทำให้แอปพลิเคชันของคุณพัง หากไม่ทราบว่าการพัฒนาของคุณต้องการให้ฉันตะโกน YMMV แต่ฉันเดาว่าคุณจะไม่มีปัญหาที่ไม่สามารถนับได้


0

หากคุณต้องการใช้งาน Python เวอร์ชันเก่าบน Ubuntu 14.04 ให้เปิดใช้งานที่เก็บdeadsnakes มันมี Python เวอร์ชัน 2.3, 2.4, 2.5, 2.6, 3.1, 3.2, 3.3 สำหรับ Ubuntu 14.04 หากแอปพลิเคชันของคุณเป็นรหัส Python ที่แท้จริงและไม่ได้ขึ้นอยู่กับพฤติกรรมของกระบวนการอื่น ๆ ก็ควรจะทำงานได้ดีภายใต้ล่ามเก่า


0

เป็นอีกคำตอบหนึ่งคุณสามารถใช้สภาพแวดล้อมเสมือนได้หากคุณมีปัญหาใด ๆ หรือคุณสามารถใช้ไพ ธ อนรุ่นเดียวกันกับ 11.04 (ดาวน์โหลดและสร้าง) ใน 14.04


แน่นอนว่าฉันสามารถทดสอบกับ VM ได้ (ฉันทำได้) ซอฟต์แวร์ของฉันทำงานได้ดี ... ในตอนนี้ ... แต่ฉันไม่มีเงื่อนงำว่าจะเกิดข้อผิดพลาดในภายหลังเนื่องจาก Ubuntu รุ่นใหม่

1
เนื่องจาก Ubuntu 14.04 เป็นรุ่น LTS และตามปรัชญาของพวกเขาพวกเขาจะไม่เปลี่ยนรุ่น (วางระเบิดในรุ่นใหญ่) และการกำหนดค่าฉันคิดว่าคุณต้องไม่มีปัญหาใด ๆ
— มหาสมุทร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.