[PY-005][기초] 가상환경과 pip로 패키지 따로 관리하기 > IT 기술 공유

본문 바로가기
사이트 내 전체검색

IT 기술 공유

[PY-005][기초] 가상환경과 pip로 패키지 따로 관리하기

페이지 정보

profile_image
작성자 기술팀장
댓글 0건 조회 229회 작성일 26-08-31 22:39

본문

[이번 수업]
프로젝트마다 필요한 패키지 버전은 다를 수 있습니다. 가상환경(virtual environment)은 프로젝트 전용 Python과 패키지 공간을 만듭니다. `.venv` 생성부터 pip 설치 목록 재현까지 실습합니다.

[선수지식]
PY-001~004의 Python 실행, import, 모듈·패키지와 폴더 이동을 알아야 합니다. `python --version`, Windows에서는 `py --version`이 동작하는지 먼저 확인하세요.

[학습목표]
1. 전역 Python과 가상환경의 패키지 공간을 구분한다.
2. 운영체제에 맞게 가상환경을 만들고 활성화한다.
3. 현재 Python에 연결된 pip로 패키지를 설치·확인한다.
4. requirements.txt로 설치 목록을 재현한다.

[핵심개념]
`venv`는 기존 Python을 바탕으로 독립 환경을 만듭니다. 기본적으로 다른 환경과 분리된 `site-packages`를 사용하므로 프로젝트별 버전 충돌을 줄입니다.

활성화하면 환경의 실행 파일 폴더가 PATH 앞에 놓여 `python`이 `.venv`를 가리킵니다. 활성화는 편의 기능이며 필수는 아닙니다. Windows는 `.venv\Scripts\python.exe`, macOS·Linux는 `.venv/bin/python`처럼 환경의 Python 경로를 직접 실행해도 됩니다.

pip는 패키지 설치 도구입니다. 다른 Python의 pip를 잘못 부르지 않도록 현재 Python으로 모듈을 실행하는 `python -m pip`를 사용합니다. 가상환경은 복사하거나 Git에 넣지 않고, `requirements.txt`로 다시 만듭니다.

[따라하기]
새 프로젝트 폴더에서 운영체제에 맞는 명령을 실행합니다.

Windows PowerShell:
```powershell
mkdir py-venv-lab
cd py-venv-lab
py -m venv .venv
.\.venv\Scripts\Activate.ps1
```

macOS·Linux의 bash/zsh:
```shell
mkdir py-venv-lab
cd py-venv-lab
python3 -m venv .venv
source .venv/bin/activate
```

활성화되면 프롬프트 앞에 보통 `(.venv)`가 붙습니다. 다음 공통 명령으로 실제 격리 여부와 pip 경로를 확인합니다.

```shell
python -c "import sys; print(sys.prefix != sys.base_prefix)"
python -m pip --version
```

결과는 `True`이고 pip 경로에는 `.venv`가 포함되어야 합니다. 이제 예제 패키지를 설치하고 버전을 확인합니다.

```shell
python -m pip install packaging
python -c "import packaging; print(packaging.__version__)"
python -m pip show packaging
```

예상 결과는 `Successfully installed packaging-X.Y`이며 Location은 `.venv` 아래입니다. X.Y는 설치 시점에 따라 달라집니다.

설치 목록을 파일로 남기고 같은 환경을 다시 만들 때 사용합니다.

```shell
python -m pip freeze > requirements.txt
python -m pip install -r requirements.txt
deactivate
```

requirements.txt에는 `packaging==X.Y`가 기록됩니다. `deactivate`는 원래 셸로 돌아갑니다. PowerShell이 활성화를 차단하면 정책을 낮추지 말고 `.\.venv\Scripts\python.exe -m pip ...`처럼 직접 실행하세요.

[흔한 실수]
전역 Python에 잘못 설치하지 않도록 먼저 `python -m pip --version` 경로를 확인하세요. `.venv`는 복사·커밋하지 말고 `.gitignore`에 `.venv/`를 넣습니다. requirements.txt를 갱신하고, 프로젝트를 옮겼다면 가상환경을 다시 만드세요.

[보안 주의]
관리자 권한이나 `sudo pip install`로 시스템 Python을 바꾸지 마세요. 설치 중 코드가 실행될 수 있으므로 이름을 철자까지 확인하고 신뢰할 수 있는 인덱스와 검토된 버전을 사용합니다. 비슷한 이름의 악성 패키지, 출처 불명 URL, 의존성 파일에 들어간 토큰을 주의하세요. requirements.txt에는 비밀번호나 비공개 저장소 자격증명을 직접 적지 않습니다.

[직접 해볼 과제]
1. 새 가상환경 두 개를 만들고 한쪽에만 packaging을 설치해 다른 쪽의 import가 실패하는지 확인하세요.
2. 첫 환경의 requirements.txt를 두 번째 환경에 설치한 뒤 `python -m pip freeze` 결과를 비교하세요.

[확인문제]
1. 가상환경이 프로젝트마다 필요한 패키지 버전을 분리하는 방법은 무엇인가요?
2. `python -m pip`를 사용하면 어떤 Python에 설치되는지 어떻게 알 수 있나요?
3. `.venv` 자체보다 requirements.txt를 공유해야 하는 이유는 무엇인가요?

[다음 학습]
PY-006에서는 파일을 읽고 쓰며 JSON과 CSV 데이터를 안전하게 처리하는 방법을 배웁니다.

[공식 참고 자료]
Python venv 공식 문서: https://docs.python.org/3/library/venv.html
Python Packaging User Guide 설치 안내: https://packaging.python.org/en/latest/tutorials/installing-packages/
pip 사용자 가이드: https://pip.pypa.io/en/stable/user_guide/

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

접속자집계

오늘
779
어제
5,103
최대
16,772
전체
771,833
Copyright © 소유하신 도메인. All rights reserved.