목차
개요
여러 Python 프로젝트를 하나의 머신(PC)에서 개발하다보면, 각각의 프로젝트에서 사용하는 Python 버전에 따라 개발 환경을 구축해야할 경우가 있습니다.
이때, 매번 Python을 지우고 해당 프로젝트에 필요한 Python 버전을 설치할 수는 없습니다. 이번 블로그 포스트에서는 pyenv
를 사용하여 하나의 머신에서 다양한 Python 버전을 설치하고 관리하는 방법에 대해서 알아보도록 하겠습니다.
pyenv 설치
다음 명령어를 사용하여 pyenv
를 설치합니다.
- macOS:
brew install pyenv
- Windwos:
choco install pyenv-win
macOS
인 경우, .zshrc
파일을 열고 다음과 같은 내용을 추가합니다.
# code ~/.zshrc
...
# pyenv setting
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
pyenv-virtualenv 설치
pyenv-virtualenv
는 pyenv
의 플러그인으로 Python의 가상 환경을 만들 수 있게 도와주는 플러그인입니다.
- pyenv-virtualenv: https://github.com/pyenv/pyenv-virtualenv
그럼 다음 명령어를 실행하여 pyenv-virtualenv
를 설치합니다.
- macOS:
brew install pyenv-virtualenv
- Windows:
pip install pyenv-virtualenv
macOS
인 경우, .zshrc
파일을 열고 다음과 같은 내용을 추가합니다.
# code ~/.zshrc
...
# pyenv-virtualenv setting
eval "$(pyenv virtualenv-init -)"
Python 버전 리스트
다음 명령어를 실행하여 pyenv
로 설치 가능한 Python 버전을 확인합니다.
pyenv install --list
그럼 다음과 같이 설치 가능한 Python의 버전 리스트를 확인할 수 있습니다.
...
stackless-3.2.5
stackless-3.3.5
stackless-3.3.7
stackless-3.4-dev
stackless-3.4.2
stackless-3.4.7
stackless-3.5.4
stackless-3.7.5
Python 3.9.9 설치
이번 블로그 포스트에서는 Python 3.9.9
버전을 설치해 보도록 하겠습니다. 다음 명령어를 실행하여 Python 3.9.9
버전을 설치합니다.
pyenv install 3.9.9
pyenv versions
설치가 완료되었다면, 다음 명령어를 실행하여 설치된 Python 버전을 확인합니다.
pyenv versions
그럼 다음과 같이 방금 설치한 Python 3.9.9
를 확인할 수 있습니다.
* system (set by /.pyenv/version)
3.9.9
pyenv version
다음 명령어를 실행하면 현재 사용중인 Python 버전을 확인할 수 있습니다.
pyenv version
그럼 다음과 같이 현재 사용중인 버전을 확인할 수 있습니다.
system (set by /Users/dev-yakuza/.pyenv/version)
설치한 Python 버전 사용하기
이제 pyenv
로 설치한 Python 버전을 사용하는 방법에 대해서 알아봅시다. 다음 명령어를 실행하면 Python 3.9.9
를 전역적으로 사용할 수 있습니다.
pyenv global 3.9.9
다음 명령어를 사용하면 현재 프로젝트에만 적용할 수 있습니다.
pyenv local 3.9.9
이 명령어는 .python-version
파일을 생성하고 개발 환경에 pyenv
가 활성화되어 있는 경우, 자동으로 해당 버전을 사용하도록 변경해 줍니다.
다음 명령어를 사용하면 현재 shell
에서만 해당 버전을 사용할 수 있습니다.
pyenv shell 3.9.9
Python 가상 환경 생성
여러 프로젝트가 동일한 Python 버전을 사용하지만, 설치하는 라이브러리의 버전이 다를 수 있습니다. 이럴 경우, 의도하지 않은 버전의 라이브러리가 사용되어 문제를 발생 시킬 수 있습니다.
이럴 때, 동일한 버전의 Python을 사용하여 각각의 프로젝트용 가상 환경을 만들고, 그 가상 환경위에서 개발을 하면 이 문제를 해결할 수 있습니다.
그럼 pyenv-virtualenv
을 사용하여 가상 환경을 만들어 봅시다. 다음 명령어를 사용하여 Python 가상 환경을 생성합니다.
# pyenv virtualenv VERSION NAME
pyenv virtualenv 3.9.9 venv
생성이 완료되었다면 다음 명령어를 사용하여 Python 가상 환경이 잘 생성되었는지 확인합니다.
pyenv versions
그럼 다음과 같이 가상 환경이 잘 생성된 것을 확인할 수 있습니다.
* system (set by /.pyenv/version)
3.9.9
3.9.9/envs/venv
venv
이제 다음 명령어를 사용하여 pyenv-virtualenv
로 생성한 가상 환경을 활성화 시켜봅니다.
pyenv activate venv
그런 다음 다시 다음 명령어를 실행하여 가상 환경이 활성화되었는지 확인해 봅니다.
pyenv versions
문제가 없다면 다음과 같이 가상 환경이 잘 활성화된 것을 확인할 수 있습니다.
system
3.9.9
3.9.9/envs/venv
* venv (set by PYENV_VERSION environment variable)
가상 환경위에서 모든 작업을 끝냈다면, 다음 명령어를 실행하여 가상 환경을 비활성화시킬 수 있습니다.
pyenv deactivate
다시 다음 명령어를 실행하여 가상 환경이 잘 비활성화되었는지 확인해 봅니다.
pyenv versions
그럼 다음과 같이 가상 환경이 비활성화된 것을 확인할 수 있습니다.
* system (set by /.pyenv/version)
3.9.9
3.9.9/envs/venv
venv
.python-version 파일
앞서 pyenv local
명령어를 실행하면 자동으로 .python-version
파일이 생성되는 것을 확인할 수 있었습니다. 이를 통해, pyenv
를 사용하는 개발 환경에서는 자동으로 Python
의 버전을 변경해 줍니다. 만약 해당 Python 버전이 없는 경우 다음 명령어를 사용하여 .python-version
에 작성된 Python 버전을 설치할 수 있습니다.
pyenv install
그러므로 이 .python-version
파일을 사용하면 해당 프로젝트를 실행하기 위한 Python의 버전을 공유할 수 있습니다. 만약, 현재 프로젝트의 .python-version
파일이 없는 경우, .python-version
파일을 만들고 다음과 같이 해당 프로젝트에서 필요로 하는 Python의 버전을 작성합니다.
3.9.9
Python 버전 삭제하기
머신에서 더이상 사용하지 않는 Python 버전이나 Python 가상 환경이 있는 경우, 다음 명령어를 사용하여 해당 버전(가상 환경)을 제거할 수 있습니다.
pyenv uninstall 3.9.9
# pyenv uninstall venv
완료
이것으로 pyenv
를 사용하여 동일한 머신에 다양한 Python 버전을 사용하는 방법에 대해서 알아보았습니다. 또한 pyenv-virtualenv
플러그인을 사용하여 Python의 가상 환경을 구성하는 방법에 대해서도 알아보았습니다. 만약, 여러분이 다양한 Python 버전의 개발 환경이 필요한 경우 pyenv
를 사용하여 버전 관리를 해보시길 바랍니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.