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


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.