관리 메뉴

FU11M00N

[python] 리눅스 에서 파이썬 여러버전 사용하기(업그레이드 or 다운그레이드)Alternatives 활용 본문

Programming/Python

[python] 리눅스 에서 파이썬 여러버전 사용하기(업그레이드 or 다운그레이드)Alternatives 활용

호IT 2020. 10. 14. 02:27

우분투(Debian) 계열 리눅스를 설치하면 python path가 2.7로 기본 설정이 되어있습니다.

Alternatives를 이용하여 python 버전을 쉽게 번경하고 관리할 수 있습니다.

 

 

Alternatives (cf, update-alternatives)란?

 

심볼릭 링크를 생성, 제거, 관리, 조회할 수 있는 기능을 제공하는 GNU 라이선스의 커맨드 라인 툴. 즉, 심볼릭 링크를 통해서 특정 커맨드에 대해 디폴트 버전 혹은 경로를 정의할 수 있습니다.

 

파이썬의 기본 실행 위치

$ python -V
Python 2.7.14

$ which python
/usr/bin/python

$ ls -al /usr/bin/python
lrwxrwxrwx 1 root root 24 10월 14 10:28 /usr/bin/python -> /etc/alternatives/python



 

"python -V" 명령어를 사용하면 현재 사용하고 있는 파이썬의 버전 확인이 가능합니다.

"which python" 명령어를 사용하여 현재 파이썬의 경로를 확인 가능합니다.

"ls -al /usr/bin/python" 명령어를 사용하여 현재 파이썬이  어떤 파일을 가리키고 있는지 확인이 가능합니다.

 

현재 파이썬의 버전을 확인하면 2.7.17로 설정되어있습니다.

 

 

$ ls /usr/bin/ | grep python
dh_python2
dh_python3-ply
ipython3
pybabel-python3
python
python-faraday
python2
python2.7
python3
python3-config
python3-futurize
python3-pasteurize
python3-qr
python3-tor-prompt
python3-wsdump
python3.7
python3.7-config
python3.7m
python3.7m-config
python3.8
python3m
python3m-config
x86_64-linux-gnu-python3-config
x86_64-linux-gnu-python3.7-config
x86_64-linux-gnu-python3.7m-config
x86_64-linux-gnu-python3m-config

또한 "ls /usr/bin/ | grep python" 명령어를 수행하여 현재 설치되어있는 파이썬들을 확인 가능합니다.


Alternative으로 파이썬 버전 관리 및 등록

update-alternatives를 사용하여 다음과 파이썬 버전들을 관리합니다.

 

현재 코드 블록을 보면 같이"/usr/bin/python" 은  "/usr/bin/python2.7"을 가리키고 있습니다.

만약 파이썬 3.7로 변경하고 싶다면 "/usr/bin/python을 /usr/bin/python3.7"로 가리키게 변경해야 합니다.

 

먼저 "update-alternatives --config python" 옵션을 사용하여 python 버전을 변경할 수 있습니다.

 

$sudo update-alternatives --config python
update-alternatives: error: no alternatives for python

만약 "update-alternatives: error: no alternatives for python"이라고 출력된다면 아직 아무것도 등록이 안 된 상태입니다.

 

"update-alternatives --install [symbolic link path] python [real path] number" 명령어 형식대로 사용하여 파이썬 실행파일을 등록 가능합니다.

$ update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
$ update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2

위와 같은 명령어를 입력하여 파이썬의 2.7 버전과 3.7버전을 등록합니다.

$ sudo update-alternatives --config python
대체 항목 python에 대해 (/usr/bin/python 제공) 2개 선택이 있습니다.

  선택       경로              우선순� 상태
------------------------------------------------------------
  0            /usr/bin/python3.7   2         자동 모드
* 1            /usr/bin/python2.7   1         수동 모드
  2            /usr/bin/python3.7   2         수동 모드

Press <enter> to keep the current choice[*], or type selection number: 

 그럼 파이썬 2.7버전과 3.7 버전이 올바르게 등록이 되었고 선택란에 0,1,2를 원하는 곳을 골라 자동모드로 변경 가능합니다.

저는 3.7 버전을 선택하겠습니다.

$ python --version
Python 3.7.7

$ ls -al /usr/bin/python
lrwxrwxrwx 1 root root 24 10월 14 10:28 /usr/bin/python -> /etc/alternatives/python


 3.7 버전으로 선택 후 파이썬의 버전을 확인해보면 3.7.7로 올바르게 설정되었고

"/usr/bin/python" 파일이 "/etc/alternatives/python" 파일을 가리키게 되었습니다.

Comments