반응형
가상 환경(Virtual Environment)
- 프로젝트별로 패키지를 따로 관리
- 패키지 버전 호환성 문제가 발생할 수도 있기 때문에 가상환경을 만든다.
pyenv
- 다양한 버전의 파이썬을 관리하는 도구
- 프로젝트별로 버전을 선택할 수 있어 개발 환경을 효과적으로 관리할 수 있다.
- 가상환경은 별도로 생성해주어야 한다.
- 의존성 관리나 프로젝트 환경 설정에는 직접적으로 도움을 주지 않는다.
기능
- 개별 사용자 기반으로 전역 파이썬 버전을 변경할 수 있다.
- 프로젝트 별로 파이썬 버전을 지정할 수 있다.
- 환경변수로 파이썬 버전을 재정의할 수 있다.
- 동시에 여러 버전의 파이썬에서 명령어를 검색하고 실행할 수 있다. 예를 들어 'tox'를 사용하여 여러 Python 버전에서 코드를 테스트하는데 유용하다.
- tox : Python에서 테스트를 자동화하고 표준화하는 것을 목표로 하는 도구
설정 우선 순위
- PYENV_VERSION 환경변수의 값
- pyenv shell 명령어로 현재 터미널 세션의 환경변수를 설정한다.
- 터미널이 열린 상태에서 특정 파이썬 버전을 선택하여 명령할 때 유용하다.
- 환경변수 설정을 제거하려면 pyenv shell --unset으로 명령하거나 터미널을 종료하고 새로 연다.
- .python-version 파일의 값
- pyenv local 명령어로 현재 디렉토리 및 하위 디렉토리에서 실행되는 파이썬 버전을 설정한다.
- pyenv local 명령어로 .python-version 파일이 만들어지고 이 파일에 있는 디렉토리부터 재귀적으로 모든 하위 디렉토리에 적용된다.
=> 프로젝트 디렉토리 안에서 명시적으로 특정 파이썬 버전을 선택하고자 할 때 유용하다.
- pyenv local 명령어로 .python-version 파일이 만들어지고 이 파일에 있는 디렉토리부터 재귀적으로 모든 하위 디렉토리에 적용된다.
- pyenv local 명령어로 현재 디렉토리 및 하위 디렉토리에서 실행되는 파이썬 버전을 설정한다.
- $(pyenv root)/version 파일의 값
- pyenv global 명령어로 시스템 전역의 파이썬 버전을 설정한다.
- $(pyenv root)/version 파일이 존재하지 않을 경우에는 "system" 디폴트 파이썬을 사용하는 것으로 간주한다.
사용 방법
- pyenv, pyenv-virtualenv 설치
$ brew install pyenv pyenv-virtualenv
- 쉘 설정 파일에서 환경변수 설정
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv init --path)"
export PYENV_ROOT="$HOME/.pyenv"
- Python 설치 관련
- 특정 버전 Python 설치
$ pyenv install [파이썬 버전]
- 특정 버전 Python 삭제
$ pyenv uninstall [파이썬 버전]
- 설치된 Python list 확인하기
$ pyenv versions
- 원하는 Python 버전을 기본으로 설정하기
$ pyenv global [파이썬 버전]
- 가상환경 생성
- 가상환경 목록보기
$ pyenv virtualenvs
- 가상환경 목록보기
$ pyenv virtualenv [파이썬 버전] [원하는 이름]
- 가상환경 활성화
$ pyenv virtualenvs [원하는 이름]
- 가상환경 비활성화
$ pyenv deactivate
- 가상환경 삭제
$ pyenv uninstall [원하는 이름]
pipenv
- pip과 가상환경 모듈의 문제점을 보완하기 위해 등장
- 패키지를 프로젝트 단위로 관리를 할 수 있도록 도와주는 고급 패키지 관리 도구
- 기본적으로 pip을 기반으로 동작하지만, 프로젝트 별로 격리된 가상 환경과 프로젝트 단위의 패키지 관리 매커니즘을 제공한다.
pipenv graph
: Dependency Graph 시각화 기능 제공
사용 방법
- pipenv를 설치한다.
$ pip install pipenv
- 가상환경 생성
- 가상환경으로 사용할 폴더 생성
$ mkdir [가상환경이름]
$ cd [가상환경이름]
- 가상환경 생성$ pipenv --python 3.x
- Pipfile이 생성되다.
- Pipfile은 해당 가상환경에 설치된 파이썬 버전, 패키지별 이름과 버전을 기록한다.
- packages : 실제 프로그램이 동작할 때 반드시 필요한 패키지 리스트
- dev-packages : 개발이나 테스트 시 필요한 패키지 리스트, 프로그램 배포 시 해당 패키지는 포함시키지 않는다.
$ pipenv install pytest --dev
- 패키지를 새롭게 설치하면 Pipfile.lock 파일이 생긴다.
$ pipenv lock
: 패키지 이름과 버전이 Pipfile.lock 파일에 업데이트된다.$ pipenv install
: Pipfile 파일과 Pipfile.lock 파일은 내려받은 후에 pipenv install로 모든 패키지를 한 번에 설치할 수 있다.
- 가상환경으로 사용할 폴더 생성
- 가상환경 활성화
$ pipenv shell
- 가상환경 내 모듈 설치
$ pipenv install [패키지명]
- 가상환경 비활성화
$ deactivate
- 가상환경 삭제
$ pipenv --rm
가상환경에서 주피터노트북 실행
Poetry
- Pipenv와 비슷한 기능을 제공한다.
- pip와 virtualenv를 동시에 사용할 수 있게 해주는 패키지 관리자이자 의존성 관리자이다.
사용 방법
- Poetry를 설치한다.
- 환경 변수 설정 => poetry 명령어를 수행 가능
$ export PATH="$HOME/.poetry/bin:$PATH"
- 환경 변수 설정 => poetry 명령어를 수행 가능
$ curl -sSL https://install.python-poetry.org | python3 -
- 가상환경 생성
$ poetry new [가상환경이름]
- pyproject.toml
- 프로젝트와 의존성을 조율해준다.
$ poetry install
- poetry.lock 파일이 없을 경우, 해당 파일을 읽어서 의존성 패키지를 설치한다.
$ poetry export
- 파일을 다른 형식으로 내보내는 명령어
$ poetry export -f requirements.txt --output requirements.txt
- 가상환경 내 모듈 설치
$ poetry add [패키지명]
- 가상환경 비활성화
$ exit
- 가상환경 삭제
$ poetry env remove [가상환경 경로]
venv
- 파이썬 3.3부터 venv 모듈이 기본적으로 포함되어있기 때문에 별도 외부 패키지 설치없이 바로 가상 환경 구성이 가능하다.
사용 방법
- 가상환경 생성
$ python3 -m venv [가상환경이름]
- 일반적으로 가상환경 이름은 .venv로 정하는 것이 관례이다.
- lib에 설치한 모듈들이 저장된다.
- 가상환경 활성화
$ source [가상환경이름]/bin/activate
- 가상환경 내 모듈 설치
- 가상환경 내에 설치될 뿐, 설치하는 방법이나 과정은 글로벌 환경에서 설치하는 것과 같다.
$ pip3 freeze
: 가상환경에 설치되어 있는 패키지와 각 패키지의 버전 정보가 나타난다.$ pip3 freeze > requirements.txt
: 다른 곳에서 이 파일을 통해서 동일한 버전의 패키지들을 설치할 수 있다.$ pip3 install -r requirements.txt
- 가상환경 비활성화
$ deactivate
- vscode에서도 가상환경이 아닌 기존 환경(공용 공간) 파이썬을 쓰고 싶은 경우
- 가상환경 삭제
- 해당 폴더를 지우면 된다.
rm -rf [가상환경이름]
반응형