2023년 2월 기준으로 3.11.2가 최신 버전인데요. 우분투 20.04 버전에는 파이썬 3.8이 설치되어있습니다. 조금 오래된 버전이죠. 장고에서도 최신버전의 파이썬을 쓰기를 권장하고 있습니다. pyenv를 통해 최신 버전의 파이썬을 설치하는 방법에 대해서 살펴보겠습니다. 시스템에 설치된 파이썬은 그대로 지켜주세요. ;-)
윈도우에서의 파이썬 설치는 빌드된 바이너리를 복사하는 형태로 진행이 되지만, 리눅스에서는 소스코드를 다운받아 컴파일하는 형태로 파이썬 설치가 진행됩니다. 소스코드를 컴파일하기에 의존성있는 시스템 팩키지 설치가 필요합니다.
앞선 #1편에서 VirtualBox에 리눅스를 설치해봤습니다. 편하신 터미널 프로그램으로 우분투 리눅스에 접속해주세요.
먼저 캐싱된 시스템 팩키지 목록을 업데이트해야합니다. 시스템 팩키지는 워낙 방대하기에 그 목록을 캐싱해두고 캐싱된 목록에서 조회하거든요.
sudo apt-get update
다음 명령으로 파이썬 빌드에 필요한 라이브러리 설치해주세요.
sudo apt install -y \
git gcc make zlib1g-dev libffi-dev libbz2-dev libssl-dev \
libreadline-dev libsqlite3-dev python3-tk tk-dev \
liblzma-dev
Ctrl-U
: 명령행에서 명령어를 입력하시다가, 입력했던 그 줄(Line)을 모두 삭제하고 싶으신가요? 혹은 로그인 암호를 입력하다가 잘못 입력한 암호를 한 번에 지우고 싶으신가요? 그럴 때 백스페이스를 여러 번 입력하지 않으셨나요? 그럴 때 Ctrl-U
키 한 번이면 해결됩니다.Ctrl-C
: 윈도우 GUI에서는 Copy 단축키지만, 리눅스 등의 터미널 환경에서는 현재 실행 중인 프로세스나 명령을 즉시 종료하는 데 사용됩니다. 윈도우에서도 python manage.py runserver
개발서버를 중단시킬 때 Ctrl-C
키를 입력하지 않으셨나요? 터미널 프로그램 종류에 따라 Ctrl-C
키가 상황에 따라 Copy로 동작하기도 합니다.이제 pyenv
를 설치해봅시다. pyenv 공식문서에서 다양한 설치방법을 안내하고 있는 데요. 그 중에 git
을 활용해서 설치해보겠습니다.
아래 명령으로 ~/.pyenv
경로에 pyenv를 설치합니다.
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
git clone https://github.com/pyenv/pyenv-update.git ~/.pyenv/plugins/pyenv-update
그리고, 사용하시는 쉘(shell) 설정파일에 다음 설정을 추가해주시고 exit
명령으로 연결을 종료했다가 다시 접속해서 설정을 로딩하시면, 기본적인 pyenv
설치는 끝났습니다. 사용하시는 쉘은 echo $SHELL
명령으로 확인하실 수 있습니다.
~/.bashrc
~/.zshrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
리눅스에서의 파일 편집에 대해서는 리눅스 CLI 에서 텍스트 파일을 편집하는 3가지 방법 포스팅을 참고해주세요.
차근차근 최신버전의 파이썬을 설치해봅시다.
설치가능한 파이썬 배포판 목록을 출력해봅니다. 목록이 너무 길기에 | head
파이프를 통해 처음 10줄만 출력해봤습니다. | grep
파이프를 통해 3.11 버전만 추려서 출력해봅니다.
저는 3.11 버전 중에 3.11.2 버전이 최신버전이네요. 3.11.2 버전을 pyenv를 통해 설치해보겠습니다.
설치한 3.11.2 버전을 pyenv 디폴트 버전으로 지정합니다. 그럼 별도의 설정/명령없이도, 현재 로그인 유저가 쉘에 접속하면 python
명령으로 3.11.2 버전이 동작할 것입니다.
pyenv를 통해 설치한 버전들도 확인하실 수 있습니다.
새로운 프로젝트에서 파이썬 3.10을 써야하는 상황을 가정해보겠습니다.
아래 명령으로 pyenv로 설치 가능한 3.10 최신 버전을 확인해봅니다. 3.10.10
이 최신버전이네요.
이제 3.10.10 버전을 설치해야겠죠.
시스템 디폴트 파이썬은 3.11.2를 쓸 것이기에 pyenv global
명령은 사용하지 않습니다. 프로젝트 루트 디렉토리로 이동하신 뒤에 pyenv local
명령으로 그 프로젝트에서 사용할 파이썬 버전을 지정합니다.
현 디렉토리에서 ls -a
명령을 수행하면 .python-version
파일이 보입니다. cat .python-version
명령을 내려보시면 pyenv local
명령에서 지정한 버전이 지정되어있음을 확인하실 수 있습니다. pyenv가 이 파일을 살펴보고 실행할 파이썬 버전을 인지합니다.
상위 디렉토리로 이동하면, 파이썬 버전이 다시 3.11.2로 나옵니다.
하나의 프로젝트에서 여러 멤버의 파이썬 버전을 맞춰야한다면 .python-version
파일을 버전관리 대상으로 추가하셔도 좋습니다.
그리고, pyenv를 쓰더라도 프로젝트마다 가상환경(venv)을 생성해서 활용하시는 것을 추천드립니다. ;-)
리눅스 쉘 환경, 파이썬, 가상환경에 익숙지신 후에 pyenv-virtualenv, autoenv 라이브러리도 써보세요. 처음에는 복잡한 듯 보이지만, 편리하게 pyenv와 가상환경을 관리하실 수 있습니다. ;-)
pyenv update
: pyenv로 설치할 수 있는 목록(캐싱된)을 업데이트합니다.pyenv install --list
: pyenv로 설치할 수 있는 목록을 보여줍니다.3.11.2
처럼 숫자만 적혀있는 버전은 파이썬 기본 배포판pyenv install --list | grep 3.11
pyenv install 버전명
pyenv versions
pyenv global 버전명
pyenv local 버전명
pyenv uninstall 버전명
: 지정 버전의 파이썬을 삭제합니다.(계속)
댓글
진석님 강의 듣고 pyenv 너무 편하게 잘 사용하고있습니다!!
편하게 사용하신다니, 너무 보람차고 기쁘네요. 감사합니다. ;-)