Чи потрібно змінити код 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 проблематично. І проблема не збирається
згасати

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-builder . Таким чином, вам буде повідомлено про всі збої в збірці, спричинені новими версіями програмного забезпечення або зламаними залежностями.

Нові випуски зазвичай відкриті для розробки через кілька днів після офіційного оголошення про випуск. Подивіться на нашій паралельному порт сторінці, утопічно тепер є частиною серії дистрибутивів ми будуємо для:

введіть тут опис зображення


3
Чому у вас є два відповіді на це ж запитання? Крім того, autopkgtest не працює таким чином. І як це насправді відповідає на питання краще чи точніше, ніж будь-яке з інших питань?
добі

Я розмістив другу відповідь протягом періоду щедрості. Цього разу, щоб зосередитись на тому, як запобігти проблемам з оновленням, сподіваючись домогтися того, що дійсно очікувала ОП (оскільки за його коментарем я знав, що його програма працює правильно з 14.04)
Сільвен Пано

Рекомендую вам задати ще одне запитання, щоб поставити туди свою відповідь. До речі, я б виправив частину автотесту. @dobey має рацію, це не працює.
Брайам

@dobey autopkgtest виправлено / видалено з моєї відповіді.
Sylvain Pineau

@Braiam autopkgtest виправлено / видалено з моєї відповіді
Sylvain Pineau,

13

Ні, ви не повинні залишатися 11.04. Він підтримується з кінця 2012 року. Якщо вам потрібна підтримка, вам потрібно оновити принаймні до 12.04 (що буде підтримуватися ще три роки).

Крім того, навіть новіші версії Ubuntu включають 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 (він же PyGI).

Нарешті, все ж є деякі незначні відмінності між різними версіями python3 (наприклад, Argparse не так само поводиться з python 3.2 та 3.3.

Одне, що ви можете спробувати, - це завантажити 14.04 VM і протестувати свій код з python3.4.


Я не зміню свою версію Python (неможливо), мене більше хвилює те, як нова версія Ubuntu може вплинути на вихідний код мого програмного забезпечення.

Яку версію ви офіційно підтримуєте, 3.2?
Сільвейн Пано

Я використовую версію 3.1.3

Я б радив вам протестувати додаток з python3.2 (завантажуйте 12,04 ВМ і sudo apt-get install python3). Ви також можете перевірити примітку до випуску python3.2, але, наскільки я знаю, python3.2 був лише вдосконаленням у галузі 3.1.x (argparse був одним з них)
Sylvain Pineau,

1
Для програм python3 оновлені версії python - це лише ще більш ефективні способи виконання складних завдань. Наприклад, Python3.4 вводить асинсіо, і це дозволить мені позбутися дійсно складних проблем mainloop / threading з glib. Я ставлю записку про аргументацію, тому що я потрапив у пастку останніх змін, але це не є великою справою. Тож ще раз протестуйте свій sw з останніми версіями (3.2, а потім 3.4 з 14.04), але, як і інші відповіді, кажуть, що вам не доведеться стикатися з основними проблемами
Sylvain Pineau,

2

Це залежить від вашого коду. Якщо ваш код використовує бібліотеки, які не підтримуються, ви не можете легко перейти до нової версії операційної системи, але більшість часу проблеми не виникнуть.


чи можете ви пояснити мені, чому бібліотека Python залежить від даної версії 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

Як інша відповідь, ви можете використовувати віртуальне середовище, якщо у вас є якісь проблеми або ви можете використовувати ту ж версію python 11.04 (завантажити та скласти його) 14.04.


Звичайно, я можу протестувати на віртуальних машинах (я це зробив), моє програмне забезпечення працює добре ... на даний момент ... але я не маю підказки, чи не пізніше буде помилка через нову версію Ubuntu.

1
Оскільки Ubuntu 14.04 є версією LTS і, виходячи з їх філософії, вони не змінять версію (бомба на основній версії) та конфігурацію, я думаю, у вас не повинно виникнути жодних проблем.
Океан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.