이번 포스팅에서 다룰 내용은 Python Extension과 가상환경 관련 부분입니다.
0. 개념 정리
- Homebrew (Brew): Homebrew는 macOS 및 리눅스 운영체제에서 패키지 관리를 위한 명령줄 도구입니다. 주로 운영체제 수준에서 소프트웨어나 패키지를 설치, 업데이트 및 관리할 때 사용됩니다. 예를 들어, Homebrew를 사용하여 Git, Python, Node.js 등을 설치하거나 관리할 수 있습니다.
- Pyenv: Pyenv는 여러 버전의 Python을 관리하고 프로젝트마다 다른 Python 버전을 사용할 수 있도록 도와주는 도구입니다. Pyenv를 사용하면 시스템 전체의 Python 버전을 관리할 수 있고, 필요에 따라 각 프로젝트마다 다른 Python 버전을 사용할 수 있습니다. 가상 환경을 사용하여 프로젝트를 격리하는 것 외에도, 다양한 Python 버전 간 전환을 용이하게 할 수 있습니다.
- Pyenv-virtualenv: Pyenv-virtualenv는 Pyenv의 플러그인으로, 가상 환경을 관리하는 데 도움을 주는 도구입니다. Pyenv-virtualenv를 사용하면 Pyenv를 통해 여러 버전의 Python을 설치하고, 각 버전에 대한 가상 환경을 만들어 프로젝트별로 파이썬 환경을 격리할 수 있습니다. 이는 각 프로젝트마다 필요한 라이브러리와 의존성을 분리하여 충돌을 방지하고 프로젝트 간 격리된 환경을 제공합니다.
간단히 말해, Homebrew는 패키지 관리 도구이고, Pyenv는 다양한 Python 버전 관리를 지원하며, Pyenv-virtualenv는 Pyenv를 확장하여 프로젝트별로 격리된 가상 환경을 관리합니다. 이를 통해 각각의 도구들이 다른 목적과 기능을 가지고 있어서 효율적으로 개발 환경을 관리할 수 있습니다.
1. Python Extension 설치
마이크로소프트에서 나온 Python Extension을 설치해주면 됩니다. 이외에 건들 것은 없습니다.
2 Pyenv 설치
- 기존 pyenv 삭제(반드시 재설치하실 분만 실행해주세요)
rm -rf ~/.pyenv
- pyenv 설치
brew update
brew install pyenv
- 특정 버전 설치 (pyenv 활용)
pyenv install 3.7.12
- 파이썬 버전 전역 설정
pyenv global 3.7.12
- 파이썬 버전 확인
pyenv version
- 설치가 완료되었다면 다음 코드를 ~./zshrc 에 추가해줍시다.
vi ~./zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
해당 명령어는 ~/.zshrc 파일에 조건문을 추가하여, 셸이 실행될 때 pyenv를 초기화하는 스크립트를 설정합니다. 즉, 셸이 시작될 때마다 pyenv를 사용할 수 있도록 자동으로 초기화하는 작업을 수행합니다.
source ~/.zshrc
- 여기까지 진행했다면, 다음과 같이 파이썬 경로를 검색하면 Pyenv에 의해 manage되고 있음을 알 수 있습니다.
3 Pyenv 가상환경 사용
- pyenv의 가상환경을 사용하기 위해서는 virtualenv를 활용합니다.
개념적으로는 pyenv 자체는 파이썬의 버전을 설치해서 사용하는 것과 같습니다. 다만 패키지, 라이브러리를 파이썬 버전 별로 관리하면 프로젝트 상에서 같은 버전을 사용할 때, 아래의 분기가 하나 더 필요하게 됩니다. 그래서 이 가상환경을 이용해서, 파이썬 버전에서 분기된 환경을 사용하기 위해서 virtual env를 활용합니다.
brew install pyenv-virtualenv
- 해당 명령을 통해 설정을 추가해줍니다.
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
source ~/.zshrc
- 성공적으로 설정이 되었다면, 다음과 같이 활용합니다.
pyenv virtualenv {$PYTHON_VERSION} {$ENVIRONMENT_NAME}
# 예시 : pyenv virtualenv 3.7.12 base_3.7.12
- 이렇게 설정해둔 가상환경을 사용하게 되면, 문제가 생겼을 때 프로젝트에 대한 환경을 독립적으로 활용할 수 있습니다.
- 생성한 가상환경을 터미널에서 켜는 방법은 다음과 같습니다.
pyenv activate ${ENVIRONMENT_NAME}
# 예: pyenv activate base_3.7.12
- 추가로 터미널에서 가상환경 조작법입니다.
# 가상환경 종료
pyenv deactivate
# 가상환경 버전 확인
pyenv versions
# 가상환경 삭제 명령
pyenv uninstall {$ENVIRONMENT_NAME}
# 예: pyenv uninstall base_3.7.12
4. 파이썬 프로젝트 초기 세팅법
프로젝트에 가상환경을 적용하기 위해서 해당 프로세스를 따르면, 폴더별로 "독립된" 가상환경을 사용할 수 있습니다.
1. pyenv 활용 파이썬 버전 설치
pyenv install 3.9.6
2. 설치한 파이썬 버전 활용 가상환경 생성
해당 가상환경은 어떠한 수정도 거치지 않은 가상환경이므로, 이 가상환경은 절대 건드리지 않습니다.
pyenv virtualenv 3.9.6 project1
3. 생성된 가상환경을 통해 프로젝트에 적용할 가상환경 생성
작업 폴더로 찾아들어가서, 아무것도 건드리지 않은 가상환경을 활성화 시켜줍니다.
pyenv activate project1
생성된 가상환경을 폴더에 만들어줍니다. venv는 가상환경 자체를 파일 단위로 관리할 수 있게 해줍니다.(.venv 는 가상환경 폴더의 이름입니다, 보통 .venv로 설정합니다)
python -m venv .venv
이렇게 하면 폴더 하나가 생깁니다.
그럼 이 폴더에서는 해당 가상환경으로 자동으로 활성화됩니다.
4. 이해하기
|Pyenv 파이썬 버전 3.9.6
|-- .venv (프로젝트 내에 쓸 가상환경, 3.9.6에 대해 독립적)
|-- .venv (프로젝트 내에 쓸 가상환경, 3.9.6에 대해 독립적)
|-- .venv (프로젝트 내에 쓸 가상환경, 3.9.6에 대해 독립적)
|-- .venv (프로젝트 내에 쓸 가상환경, 3.9.6에 대해 독립적)
.
.
.
프로젝트 내에 .venv라는 폴더에 가상환경 폴더를 만드는 건, 컨벤션의 일종으로 생각하시면 좋습니다.
'개발환경 세팅 > VSCODE' 카테고리의 다른 글
[MAC] 1. VS코드 완전 삭제 후 재설치(BREW) (0) | 2023.12.01 |
---|