우분투를 업그레이드 할 때 파이썬 코드를 변경해야합니까?


11

몇 년 동안 Python 3에서 개발해 온 소프트웨어가 있습니다. 오늘까지 Ubuntu Desktop 11.04를 사용하고 있었지만 이제는 더 높은 버전의 Ubuntu로 이동하려고합니다.

상위 버전의 우분투에서 새로운 변경으로 인해 소프트웨어 소스 코드의 일부를 변경할 필요가 없도록 우분투 11.04를 유지해야합니까?

최근 Ubuntu 버전이 어떤 방식 으로든 내 소프트웨어에 영향을 미치지 않습니까?


18
이것은 정말 쉬운 일이 아닙니다. 소프트웨어에 문제가 있으면 14.04로 업데이트하십시오. 이것은 소프트웨어 부패를 피하기위한 훌륭한 연습입니다. 발견 할 수있는 문제의 유형은 종속성에 있습니다. virtualenv에서 미리 테스트 할 수 있습니다.
— don.joey

6
@begueradj 나는 당신의 이유를 취하거나 무효화하려는 노력을 최소화하고 싶지 않습니다. 그것은 단지 : 노력을 기울이거나 소프트웨어가 더 이상 오래 가지 않을 것입니다. 12.04로 업그레이드 할 수 있지만 EOL 버전을 유지하는 데 문제가 있습니다. 그리고 문제는 저절로 사라지지 않을 것입니다 ...
— don.joey

5
@begueradj-질문을 편집하고 소프트웨어에 대한 세부 정보를 제공하십시오. 그것이 무엇을하는지 설명하십시오. 사용중인 툴킷을 설명하십시오 (예 : GTK? QT?). 어떤 타사 소프트웨어가 의존하는지 설명하십시오 (예 : 특정 버전의 firefox? Webkit?). 소프트웨어를 빌드하기위한 소프트웨어 종속성을 설명하십시오. 위의 정보가 없으면 질문에 대한 구체적인 답변을 얻을 수 없습니다. 현재와 ​​마찬가지로 일반적인 답변을 얻을 수 있습니다.
— fossfreedom

3
11.04 년 1 년 반 전에 수명이 다되었습니다.
— psusi

답변:


3

귀하의 의견을 바탕으로 VM에서 소프트웨어를 성공적으로 테스트했으며 이는 좋은 소식입니다.

그러나 응용 프로그램 개발자는 최신 릴리스에 코드를 적용 할 준비가되어 있어야합니다.

이제 Ubuntu의 새로운 릴리스에서 계속 작동하게하려면 패키지로 유지 관리하고 응용 프로그램에 대한 완전한 테스트 스위트를 제공하고 패키지의 빌드 프로세스 중에 호출하십시오 (예 : 섹션 setup.py test에서 전화) debian/rules override_dh_auto_test).

bzr-builder recipe를 사용하여 패키지의 일일 빌드 를 ppa로 쉽게 설정할 수 있습니다 . 이렇게하면 새로운 소프트웨어 버전 또는 깨진 종속성으로 인한 모든 빌드 실패에 대한 알림을 받게됩니다.

새로운 릴리스는 일반적으로 공식 릴리스 발표 후 며칠 동안 개발을 위해 공개됩니다. 우리에서 봐 PPA의 페이지, Utopic는 지금 우리가 구축하는 배포판 시리즈의 일부입니다 :

여기에 이미지 설명을 입력하십시오


3
이 질문에 왜 2 개의 답변이 있습니까? 또한 autopkgtest는 그런 식으로 작동하지 않습니다. 그리고 이것이 실제로 다른 질문보다 더 나은 질문에 어떻게 대답합니까?
— dobey

현상금 기간 동안 두 번째 답변을 게시했습니다. 이 시간은 OP 정말 기대했던 가져다 바라고 업데이트 문제를 방지하는 방법에 초점을 (이후 그의 의견에 따라 그의 응용 프로그램에서 14.04 제대로 작동하는지 알고 있었다)
— 실뱅 피노에게

거기에 답을 넣으려면 다른 질문을하는 것이 좋습니다. BTW, autopgktest 부분을 수정하겠습니다. @dobey가 맞습니다. 그런 식으로 작동하지 않습니다.
— Braiam

@dobey autopkgtest는 내 대답에서 수정 / 제거되었습니다.
— Sylvain Pineau

@Braiam autopkgtest 내 답변에서 수정 / 제거
— Sylvain Pineau

13

아니요, 11.04를 유지해서는 안됩니다. 2012 년 10 월부터 지원 기한이 지났습니다. 지원을 받으려면 최소 12.04 ( 3 년 더 지원)로 업그레이드해야합니다 .

또한 최신 버전의 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에서 더 이상 사용되지 않습니다 .

마지막으로 다른 python3 버전간에 약간의 차이가 있습니다 (예 : Argparse는 python 3.2 및 3.3과 정확히 동일하게 작동하지 않습니다).

시도 할 수있는 한 가지는 14.04 VM을 부팅하고 python3.4로 코드를 테스트하는 것입니다.


나는 파이썬 버전을 바꾸지 않을 것이다 (불가능하다). 나는 새로운 우분투 버전이 어떻게 내 소프트웨어의 소스 코드에 영향을 줄 수 있는지에 대해 더 걱정하고있다.

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는 그 중 하나임)에 비해 엄청나게 개선 된 것입니다.
— Sylvain Pineau

1
python3 프로그램의 경우 업그레이드 된 python 버전은 복잡한 작업을 수행 할 수있는보다 효율적인 방법을 제공합니다. 예를 들어 Python3.4에는 asyncio가 도입 되어 실제로 복잡한 glib 메인 루프 / 스레딩 문제를 제거 할 수 있습니다. 최근 변경 사항에 갇혀 있기 때문에 argparse에 대한 메모를했지만 큰 문제는 아닙니다. 그래서 다시 answsers 당신이 주요 이슈가 발생하지해야한다고 (다음 3.2 14.04 3.4) 최신 버전으로하지만 다른 사람처럼 자상을 테스트
— 실뱅 피노

2

코드에 따라 다릅니다. 코드에서 지원되지 않는 라이브러리를 사용하는 경우 최신 버전의 운영 체제로 쉽게 마이그레이션 할 수 없지만 대부분 문제는 발생하지 않습니다.


파이썬 라이브러리가 어떻게 우분투 버전에 의존하는지 설명해 주시겠습니까?

@begueradj 그렇지 않지만 더 이상 유지 관리되지 않는 Python 라이브러리를 사용하는 경우 언젠가 Ubuntu 아카이브에서 삭제되어 최신 버전에서 사용할 수 없습니다. 그러면 코드가 실패합니다. 물론 이전 버전의 Ubuntu 또는 소스에서 라이브러리 패키지를 설치하여 문제를 해결할 수 있지만 업데이트 할 수는 없습니다. 또는 다른 라이브러리를 사용하도록 코드를 수정하거나 고유 한 코드를 작성하여 동일한 기능을 수행 할 수 있습니다.
— dobey

@dobey가 말했듯이 일부 라이브러리는 더 이상 유지되지 않거나 최신 버전은 이전 버전과의 호환성을 손상시킵니다. 과거에는 최신 버전의 Ubuntu로 업그레이드 할 때 Turbogear에 문제가있었습니다.
— Ocean

0

Ubuntu 14.04에는 python3 패키지가 있으므로 문제가되지 않습니다. apt-cache search python3그들을 당신에게 보여줄 것입니다. 그 외에도 11.04와 "상위 버전"사이의 각 Ubuntu 릴리스에 대한 릴리스 정보를 읽고 응용 프로그램을 손상시킬 변경 사항을 검색해야합니다. 개발에 대해 아무것도 모르면 YMMV를 외쳐야하지만 내 생각에는 극복 할 수없는 문제가 없을 것입니다.


0

Ubuntu 14.04에서 이전 버전의 Python을 실행해야하는 경우 deadsnakes 저장소 를 활성화하십시오 . 우분투 14.04 용 Python 버전 2.3, 2.4, 2.5, 2.6, 3.1, 3.2, 3.3이 있습니다. 응용 프로그램이 순수한 Python 코드이고 다른 프로세스의 동작에 의존하지 않으면 이전 인터프리터에서 잘 작동해야합니다.


0

또 다른 대답으로, 문제가 있거나 가상 환경 을 사용할 수 있거나 14.04의 11.04에서 동일한 버전의 python을 사용할 수 있습니다 (다운로드 및 빌드).


확실히 나는 VM에서 테스트 할 수 있고 (내가 했음) 내 소프트웨어는 잘 작동합니다 ... 현재 ...하지만 새로운 우분투 버전으로 인해 나중에 버그가 생길지 모르겠습니다.

1
Ubuntu 14.04는 LTS 버전이며 철학에 따라 버전 (주 버전의 폭탄) 및 구성을 변경하지 않으므로 문제가 없어야합니다.
— Ocean
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.