데비안에서`python`을`python3`의 별칭으로 만드는 방법

Sep 17 2020

데비안 테스트 시스템의 최신 업데이트로 인해 Python 버전 2가 제거되었으며 python3. 더 이상이라는 명령이 없습니다 python. 이로 인해 Python 3과 호환되는 스크립트를 포함하여 여러 스크립트가 실패합니다.

에 python대한 별칭 으로 전역 적으로 구성하는 적절한 방법이 무엇인지 알고 싶습니다 python3.

한 가지 더러운 해결책은 수동으로 sudo ln -s /usr/bin/python{3,}. 또 다른 옵션은 별칭을 설정하는 것이지만 전체 시스템이 아닌 내 사용자에게만 적용됩니다.

또한 우분투에는 python-is-python3정확히 이것을 수행 하는 패키지 가 있지만 데비안에는 그러한 패키지가 없습니다.

답변

3 StephenKitt Sep 17 2020 at 19:59

당신이 모든 것을 규칙에 충실하려는 경우 /usr떨어져에서이 /usr/local패키지에서 와야한다, 나는 실제로 다운로드 할 패키지를 하고 설치합니다. 심볼릭 링크와 필요한 문서 만 제공 하며 패키지 관계는 향후 문제를 일으키지 않을 것입니다.python-is-python3/usr/bin/python

별칭은 스크립트의 shebangs에 도움이되지 않으며 Python 패키지가 대안을 사용하지 않는다는 점을 감안할 때 자체 대안을 만드는 update-alternatives것은 강력한 솔루션이 아닙니다.

스크립트에서를 사용하는 경우 대신 /usr/bin/env python링크를 수동으로 추가 할 수 있습니다 /usr/local/bin.

무엇을하기로 결정하든, 지금부터는 Debian의 Python 종속 패키지를 명시 적으로 사용 python2하거나 python3shebangs에서 사용해야 하므로 공식 저장소 (Debian 11 이상에서는 제외)의 패키지로 인해 문제가 발생하지 않습니다. 아직 정리되지 않은 오래된 Python 패키지가 아직 있기 때문에 불안정하고 실험적입니다.)

2 a3nm Nov 02 2020 at 22:17

데비안은 이제 python-is-python3 자체를 (이 글을 쓰는 시점에서 sid 및 테스트 중) 제공하는 것처럼 보이 므로 질문의 전제는 더 이상 유지되지 않으며 다음과 같이 할 수 있습니다 sudo apt update && sudo apt install python-is-python3.