I.K.Picture & IT Info.

[ubuntu 16.04] python 명령어 버전별 default 등록 본문

Desktop and Mobile/Linux

[ubuntu 16.04] python 명령어 버전별 default 등록

helpful-intruder 2018. 9. 10. 15:47
반응형

python은 버전 별로 설치되어 있는 경우가 많고...


물론 이를 다양한 환경에서 사용하기 위해 conda 또는 virtualenv 환경을 사용해 관리하고 있죠 

제가 python을 본지 얼마되지 않아 위 개념을 크게 잘 알고 있지는 않지만, 써 본 결과 실제로도 유용한거 같습니다. 


그런데 저렇게 conda나 virtualenv 환경이 아닌 실제 리눅스 환경에 기본으로 설정하고 싶으면 어떻게 설정해야될까요?


제가 등록한 환경은 ubuntu 16.04 LTS 버전으로 테스트 하였습니다.


먼저 16.04에는 2.7과 3.5 버전이 설치되어 있습니다.


그래서 실제 확인해보면 "python" 명령어이 기본 환경으로 2.x를 바라보고 있죠


3.x 버전을 사용하려면 python3 라고 명령어를 쳐야합니다.


만약 3.x 버전을 python으로 변경하고 싶으면 어떻게 해야될까요?

그리고 언제든지 다시 2.x로 변경하고 싶으면 또 어떻게 해야될까요?


사용 방법은 update-alternatives 를 사용하는 것입니다. 

이 방법은 java에서 버전 변경할 때 언급이 된적 있습니다.


확인은 아래 링크를 통해 할 수 있습니다. 

2016/10/04 - [Desktop and Mobile/Linux] - [Ubuntu 14.04] Java 버전 변경 명령어

 


하지만, python은 일단 update-alternatives에 등록되어 있지 않습니다.

그래서 update-alternatives --config python을 할 경우 


"update-alternatives: error:no alternatives for python" 

이라는 오류가 출력됩니다. 


그렇기 때문에 일단 먼저 등록을 해줘야합니다. 


등록 하는 방법은 아래와 같습니다.


$ sudo rm /usr/bin/python

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2 

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 3  



이렇게 등록하게되면 이제 update-alternatives 에서 python 버전을 변경할 수 있습니다.


자 그럼 이제 원하는 버전으로 변경하는 명령어를 써보죠


$ sudo update-alternatives --config python

 There are 2 choices for the alternative python (providing /usr/bin/python).

 
  Selection    Path                Priority   Status
------------------------------------------------------------
0            /usr/bin/python3.6   3         auto mode
1            /usr/bin/python2.7   1         manual mode
  2            /usr/bin/python3.5   2         manual mode
  3            /usr/bin/python3.6   3         manual mode
 
Press <enter> to keep the current choice[*], or type selection number:



이렇게 selection 할 수 있고 원하는 번호로 바꾸면 해당 python이 default 값으로 변경되서 사용할 수 있게 됩니다


반응형
Comments