기존에는 Python 3.6 버전으로 system python 하나로 충분했습니다.
그러던중 비동기 'asyncio'를 사용하는 일이 생겼습니다
처음에는 아무 문제없이 잘 돌아간다고 생각했습니다.
그러던중 뜻밖에 에러를 만나게 됩니다.
if asyncio.run(img_cls.test()) is None:
AttributeError: module 'asyncio' has no attribute 'run'
알고보니 'asyncio'에서 run 함수는 python 3.7버전 부터 사용이 가능한것이 였습니다.
뭔가 대체하는것을 찾을까 하다가 이참에 python 3.9로 올려야겠다고 생각했습니다.
최근 3.9부터 dict 에 병합 연산자가 가능해지기도 했고 많은 파이썬 내장(range, tuple, set, frozenset, list, dict)이 이제 PEP 590 벡터콜을 사용하여 빨라졌다고 합니다.
그런데 계속 이렇게 파이썬을 바꿔야하는 일이 생긴다면 매번 system python을 바꿀수도 없는 노릇입니다.
역시 모든 고민에는 이미 누군가 답을 만들어 두듯이
pyenv가 있습니다.
pyenv는 Simple Python Version Management: pyenv
정말 간편하게 파이썬을 관리할 수 있습니다.
# 먼저 apt 업데이트
sudo apt-get update
필요한 패키지들도 미리 설치해주세요
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
그리고
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
그다음에 /home/my 에 .bash_profile을 만들어주시면 됩니다.
vim .bash_profile
################
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init --path)"
fi
!!!!!
eval "$(pyenv init -)" # 이렇게 설정하는 경우 아래와 같은 메시지를 만납니다.
WARNING: `pyenv init -` no longer sets PATH.
Run `pyenv init` to see the necessary changes to make to your configuration.
그다음 pyenv versions로 지금 어떤 python 확인해보실 수 있습니다.
pyenv versions
그리고 pyenve install --list로 설치가 가능한 python버전을 확인하실 수 있습니다.
anaconda부터 mineconda까지 다양한 버전을 전부 확인하실 수 있습니다.
저는 python 3.9.4 버전을 설치를 했습니다.
pyenv install 3.9.4를 하고나면 설치가 진행이 되는데 시간이 조금 걸립니다.
intalling Python-3.x.y ... 여기서 멈춘게 아니니 기다리시면 됩니다. 체감상 한 3~4분정도 되는것같습니다
그리고 다시 pyenv versions 을하면 밑에 3.9.4가 새로 생긴것을 확인하실 수 있습니다.
새로운 인스턴스를 생성했는데 해당 인스턴스는 기본 system python3 가 python 3.8.5입니다.
pyenv shell로 설치한 3.9.4를 설정하고 다시 python3 버전을 체크해보면
3.9.4로 바뀌어있는것을 확인하실 수 있습니다!
이렇게 간단하게 python 버전을 관리해보세요~
다음 포스팅에서는 당연히 python 버전에 맞는 pyenv 가상환경을 만드는 포스팅을 이어서 하도록 하겠습니다
'Ubuntu' 카테고리의 다른 글
Nginx client intended to send too large body: (0) | 2021.06.07 |
---|---|
Ubuntu에 pyenv-virtualenv 가상환경 만들기! (0) | 2021.06.01 |
우분투 디스크 용량이 가득 찼을때! (0) | 2021.05.04 |
Nginx 사용시 504 Gateway Timeout 뜹니다. (0) | 2020.05.19 |
개발할때 어떤 OS & PC를 써야하나요? (0) | 2020.04.09 |
댓글