ฉันควรเปลี่ยนรหัส 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.