Ubuntu 18.04로 업그레이드 한 후 기본적으로 python3으로 안전하게 전환하는 방법


14

이후 python3우분투 18.04의 기본 파이썬 버전이며 python2신선한 우분투 18.04 설치에 기본적으로 제공되지 않습니다, 어떻게 내가 할 수 있습니다 python3(16.04)에서 우분투 18.04로 업그레이드 한 후 기본. 현재로 업그레이드 한 후에도 python2여전히 기본값으로 설정되어 있습니다 (예 : python명령이 지시하는 python2등). 그러나 python패키지를 제거하면 패키지에 의존하는 패키지가 너무 많이 제거되므로 여기서는 옵션이 아닙니다.

이상적으로는 python2가능한 많은 종속성 을 제거하고 싶습니다 . 어쩌면 업그레이드 프로세스는 모든 패키지가 실제로 python2종속성 에 의존 하는지 여부를 확인 python2하여 동일한 python3종속성 으로 대체 될 수있는 모든 종속성 을 수집 (그런 다음 업그레이드로 해결 될 수 있음) 방식으로 설계 될 수 있습니다.


새로운 문구를 확인하십시오. 이전은 당신이 요구 한 것에 대해 다소 불분명했습니다. 게시물 제목에서이를 정리하려고했습니다.
Juan Antonio

@JuanAntonio를 편집 해 주셔서 감사합니다. 편집 내용의 대부분이 좋아 보입니다. 이 질문을 올바른 방향으로 돌리기 위해 추가 수정을했습니다.
zazi

이것이 안전합니까, python2를 제거하거나 떠나는 끝은 무엇입니까? 그것이 있다면 무언가가 필요합니다!
George Udosen

2
당신은 몇 가지 추가 패키지를 설치 (또는 이미 설치된 말했다 패키지를 업그레이드 한) 아직 파이썬 2가 필요합니다 때문에 사실 파이썬 2 3.X는 당신이 그것을 가지고 있다면, 그래서 그것이, 18.04에 기본적으로 설치되어 있지 않습니다 기본 아카이브에서 2.x를 사용하는 것이 더 이상 없다는 것을 의미하지는 않습니다. 20.04는 더 이상 파이썬 2.x를 더 이상 제공하지 않을 것입니다.이 시점에서 더 이상 업스트림에서 지원되지 않기 때문입니다.
dobey at

"python2 제거의 끝은 무엇입니까?"– 다소 깨끗한 시스템. 업그레이드 후 어떻게 든 고장이 난 파이썬 설치.
zazi

답변:


15

이 게시물은 약간 오래되었지만 더 나은 대안이 있다고 생각합니다. enter update-alternatives. 다음은 /usr/bin/python기본값을 2.7로 설정하지만 원하는 경우 3.6을 사용할 수 있습니다.

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 20
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 10

여기서 가장 높은 우선 순위는 "자동"선택으로 사용 /usr/bin/python되지만을 실행하여 쉽게 전환 할 수 있습니다 sudo update-alternatives --config python.


1
좋은 대답입니다. 필자의 경우 python2.7은 nodejs / npm에 의해 설치되고 어떻게 든 기본값으로 설정되었습니다 python. 나는 sudo update-alternatives --remove-all python모든 파이썬을 제거하고 사용하려는 유일한 파이썬을 추가했습니다 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 10. 또한 알고 sudo update-alternatives --list python있는 것이 무엇인지 확인하는 것입니다.
philshem

1
당신은 또한 수행 할 수 있습니다 sudo apt install python3-pipsudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 10
다니엘

11

python2를 완전히 제거하려면 다음을 python2.x-minimal수행 하는 패키지 를 제거해야 합니다

sudo apt purge python2.x-minimal

시스템에서 x를 정확한 버전의 python 2로 바꿉니다. 그러나 업그레이드 후에도 여전히 Python 2에 의존하는 패키지를 가지고있을 수 있으므로 다른 패키지가 제거되었는지 확인하십시오. 이러한 패키지도 제거되어 작동을 멈 춥니 다.


'기본'python 인터프리터와 같은 것은 없습니다. 왜냐하면 실제 파일이 /usr/bin/python가리키는 대상 에 달려 있기 때문입니다 .python 으로 변경하려면 ln명령을 사용하여 링크를 업데이트하십시오. 예를 들어 python 3.6을 가리키고 싶다고 가정 해 봅시다.

sudo ln -sfn /usr/bin/python3.6 /usr/bin/python

또는 사용자를 위해 이것을 원한다면의 별칭으로 설정 하여 원하는 편집기에서 .bashrc열고 ~/.bashrc다음 행을 추가 할 수 있습니다

alias python='python3.6' 

"업그레이드 후에도 여전히 파이썬 2에 의존하는 패키지를 가지고 왔을 수도 있습니다"<-예, 우분투 18.04는 python2기본값을 사용하여 종속성 없이 패키지를 실행하기 때문에 실제로 필요하지 않기 때문에이 종속성을 제거하는 것이 목적입니다. python3의존성 / 패키지.
zazi

1
이것이 안전합니까, python2를 제거하거나 떠나는 끝은 무엇입니까? 그것이 있다면 무언가가 필요합니다!
George Udosen

0

내 16.04 /usr/bin/python에서는 링크 일 뿐이 므로이 /usr/bin/python2.7링크를 /usr/bin/python3.x( x물론 적절하게) 가리 키도록 변경해야한다고 가정합니다 .


당신은 또한 지점 수 /usr/bin/python/usr/bin/python3설치된 최신 python3 버전에 대한 링크이다. 또는의 별칭 또는 함수 만 가능합니다 ~/.bashrc. 옵션의 톤 ;-)
Kev Inski

아니, 나는 이것이 내가 여기서하고 싶은 것이 아니라고 생각합니다. python2시스템에서 제거하고 싶습니다 (기본은 새 우분투 18.04를 설치할 때의 기본 경우 python3이므로 기본적으로 python2설치되지 않음)
zazi

2
@zazi 퍼지하지 않는 것이 좋습니다 python2. 다른 많은 패키지가 그것에 의존하는 것 같습니다. python2설치된 상태로 유지하여 단점이 있습니까?
Kev Inski

python2실제로 필요한 경우 설치를 유지하는 데 단점이 없지만 가능한 한 자주 python3제거하십시오 (예 : python2Ubuntu 18.04를 새로 설치하면 이것이 가능함을 알 수 있습니다).
zazi

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