왜 파이썬 2.7이 우분투의 기본 파이썬 버전입니까?


32

공식적인 파이썬 문서에 따르면 Python2.7 지원은 가까운 시일 내에 종료 될 것입니다.

더 이상 사용되지 않음 : Python 2.7은 2020 년 1 월 1 일에 수명이 다합니다. Python 2.7은 그 날짜 이후로 유지되지 않으므로 Python을 업그레이드하십시오. 향후 버전의 pip는 Python 2.7에 대한 지원을 중단합니다. pip의 Python 2 지원에 대한 자세한 내용은 https://pip.pypa.io/en/latest/development/release-process/#python-2-support 에서 확인할 수 있습니다.

Ubuntu가 곧 출시 될 버전에서 Python3를 기본값으로 사용하지 않는 이유는 무엇입니까?

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="19.04 (Disco Dingo)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 19.04"
VERSION_ID="19.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=disco
UBUNTU_CODENAME=disco
$ python
Python 2.7.16 (default, Apr  6 2019, 01:42:57) 
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.

2
python3.7 패키지를 설치할 수 있습니다. 문제는 ubuntu \ linux mint 버전에 여전히 오래된 소프트웨어가 있기 때문에 새로운 패키지를 수동으로 설치해야한다는 것입니다.
수수께끼

8
@enigma python3은 기본적으로 라 비난 단 시스템에 이미 설치되어 있으므로 python과 python3이 서로 함께 설치되어 있기 때문에 해당 질문과 중복되지 않습니다.
karel

답변:


40

Bionic Beaver릴리즈 노트에 따르면 :

Python 2는 더 이상 기본적으로 설치되지 않습니다. Python 3이 3.6으로 업데이트되었습니다. 이것은 파이썬 2를 메인에 포함시킨 마지막 LTS 릴리스입니다.

그리고 위의 진술은 사실입니다. Python 2는 기본적으로 18.04에 설치되지 않으며 그 이후에 릴리스 된 버전입니다. Ubuntu는 이미 거의 모든 프로젝트를 Python 2에서 Python 3으로 옮겼습니다. 예를 들어 Disco Dingo의 릴리스 노트에 따르면 :

Samba는 버전 4.10.x로 업데이트되었으며 여기에서 큰 변화 중 하나는 python3 지원입니다. Disco에서 samba와 그 의존성은 tdb를 제외하고는 모두 python3입니다. tdb는 여전히 python2 패키지, 즉 python-tdb를 빌드하지만 삼바 자체를 포함한 다른 모든 패키지는 python3입니다.

또한, 심지어 우분투 18.04의 출시 전에 우분투 / 캐 노니 컬이 때문에 파이썬 3로 이동 개발자를 묻기 시작 끝이 근처입니다 . 에서 파이썬 - 우분투 위키 :

모든 Ubuntu / Canonical 기반 개발은 현재 Python 3을 대상으로해야하며 모든 새 코드는 Python 3 전용이어야합니다. 의존성 스택으로 인해이 작업을 수행 할 수 없다면 이야기 해 봅시다.

시스템에 Python 2가 의도적으로 설치되었거나 개발자가 Python 3으로 이동하지 않은 다른 패키지의 종속성으로 보이는 것 같습니다. Python 2에 종속 된 패키지를 실행하여 확인할 수 있습니다.

apt rdepends python

Python 2가 python실행될 때 호출되는 이유 는 PEP 394역사적 요점 중 하나 인 Unix-Like Systems의 "python"명령에 있습니다 .

python명령은 Python 2에서 Python 2 코드가 실행될 때 진단하기 어려운 오류를 방지하기 위해 항상 Python 2를 호출해야합니다 .


12
마지막 요점을 명확히하기 위해 Python 3은 Python 2와 역 호환되지 않으며 Python 2가 Python 3보다 많은 라이브러리 지원을 제공한다는 사실과 함께 많은 개발자가 여전히 Python 2에 직접 의존한다는 것을 의미합니다. 파이썬 3은 오랫동안 사용되지 않았지만 실제로는 더 이상 지원되지 않아도 파이썬 2가 여전히 강력하게 사용되는 이유는 라이브러리입니다 (정확하게 기억한다면 공식 지원이 종료되었습니다) 2018). 편집 : 공식 지원은 2020 년에 종료됩니다.
searchengine27

8
"... Python 2가 Python 3보다 더 많은 라이브러리를 지원한다는 사실은 ..." -소스가 있습니까? 더 이상 Python 3을 지원하지 않는 라이브러리는 거의 발생하지 않으며 실제로 일부는 Python 2에 대한 지원을 중단합니다! (예를 들어, 인기있는 파이썬 웹 프레임 워크 인 장고 (Django)는 3 번의 릴리스에서 파이썬 2를 지원하지 않았습니다 .) 당신의 진술은 5 년 전에 의미가 있었지만, 오늘 저는 통계와 함께 백업하지 않고서도 포괄적 인 일반화를 할 수 있다고 생각하지 않습니다. .
marcelm

7
@ searchengine27 라이브러리가 그 요소를 지원한다고 생각하지 않습니다. 이전 버전과의 호환성 문제는 세계로 시작하는 임의의 스크립트를 맞이 때문이다 #!/usr/bin/python경우 깰 것 또는 이와 동등한 python되었다 python3파이썬 3에 따라 임의의 스크립트 가능성 시작하는 반면, #!/usr/bin/python3.
James_pic

1
@ searchengine27 오래 전에 누군가가 가장 일반적인 의존성과 그 python3 상태 (당시 끔찍한)를 나열한 "Python3 wall of Shame"웹 사이트를 만들었습니다. 그러나 실제로는 모든 공통적 인 종속성이 마이그레이션되고 마이그레이션되지 않은 소수는 어쨌든 사망했기 때문에 Python 3 Wall of Superpowers 로 변경 된 지 몇 년이 지났습니다 (웹 사이트는 2018 년 4 월 이후 기본적으로 모든 것이 업데이트되지 않았습니다) python3 가능합니다).
Giacomo Alzetta

4
그냥 추가로 : 파이썬 소프트웨어 재단은 2020 년 파이썬이 유지 중지 것이라는 사실 을 의미하지 않습니다 캐 노니 컬은 사실 2020 년에 파이썬이 유지 중단됩니다의 요점 리눅스 사용의 분포를 신뢰할 수있는 공급 업체는 것입니다 모든 배포판의 패키지 ( "주"리포지토리를 의미하는 데비안 / 우분투 의 경우)는 원본 업스트림 패키지의 지원 상태에 관계없이 배포 릴리스의 전체 수명 동안 유지 됩니다. 즉, Ubuntu 19.04의 Python 2 패키지는 Ubuntu 19.04가 유지되는 한 유지 관리됩니다.
Jörg W Mittag

0

내 지식으로는 아치 리눅스만 python3이 기본 python명령 에서 호출했습니다 . PEP 394 권장 사항 에도 불구하고 .

그것은에서 변경 될 수 있습니다 /usr/bin사이의 링크를 재정 의하여 python, pythonXpythonX.Y. 그러나 모든 python2 스크립트가 모두 명시적인 쉘 뱅을 갖도록 요구하기 때문에 많은 버그에 대처할 준비를하십시오.

#!/usr/bin/env python2

오래된 스크립트에서 거의 사용되지 않는 쉘 뱅.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.