한줄 요약:
파이썬 프로젝트마다 독립적인 환경을 만들고,
필요한 패키지를 효율적으로 관리하는 방법을 배워보자!
1. 목표
- **가상환경(venv)**을 사용해 프로젝트별 독립적인 환경 만들기
- 패키지 관리 (
pip,conda) 방법 익히기 - 프로젝트에 맞는 패키지를 효율적으로 설치하고 관리하기
2. 가상환경(venv) 사용법
1️⃣ 가상환경 생성하기
- Windows
py -m venv .venv - macOS / Linux
python3 -m venv .venv
이렇게 하면 현재 폴더에 .venv라는 가상환경 폴더가 생깁니다.
2️⃣ 가상환경 활성화
- Windows (CMD)
.venv\Scripts\activate - macOS / Linux
source .venv/bin/activate
가상환경을 활성화하면, 커맨드라인에 (venv)처럼 환경명이 표시됩니다.
3️⃣ 가상환경 비활성화
- 모든 OS 공통
deactivate
가상환경을 비활성화하면, 원래의 시스템 환경으로 돌아갑니다.
4️⃣ 가상환경 안에서 패키지 설치
가상환경이 활성화된 상태에서 패키지를 설치하면, 다른 프로젝트의 패키지와 충돌 없이 사용할 수 있습니다.
pip install requests
3. 패키지 관리
1️⃣ pip으로 패키지 설치
pip는 파이썬의 기본 패키지 관리 툴로, 패키지를 설치하고 관리하는 데 사용됩니다.
pip install <패키지명>
예를 들어, requests 패키지를 설치하고 싶다면:
pip install requests
설치된 패키지 목록은 pip list 명령어로 확인할 수 있습니다.
pip list
2️⃣ 설치된 패키지 버전 확인
pip show <패키지명>
예시:
pip show requests
이 명령어는 패키지의 버전, 위치, 의존성 등을 보여줍니다.
3️⃣ 패키지 업그레이드
패키지의 최신 버전으로 업그레이드하려면 --upgrade 옵션을 사용합니다.
pip install --upgrade requests
4️⃣ 설치된 패키지 목록 저장 및 공유
프로젝트의 패키지 목록을 requirements.txt 파일에 저장할 수 있습니다.
pip freeze > requirements.txt
이후, 다른 개발자가 동일한 환경을 설치하려면:
pip install -r requirements.txt
5️⃣ 패키지 제거
불필요한 패키지를 삭제하려면 uninstall 명령어를 사용합니다.
pip uninstall requests
4. conda로 패키지 관리 (Anaconda 사용 시)
Anaconda는 데이터 과학과 머신러닝 프로젝트에 많이 사용되는 파이썬 배포판으로, conda는 이 배포판에서 사용하는 패키지 관리 툴입니다.
만약 Anaconda를 사용하고 있다면 pip 대신 conda를 사용할 수 있습니다.
1️⃣ conda로 패키지 설치
conda install requests
2️⃣ conda로 가상환경 만들기
Anaconda에서 가상환경을 만들려면:
conda create --name myenv python=3.9
3️⃣ conda로 가상환경 활성화/비활성화
- 활성화
conda activate myenv - 비활성화
conda deactivate
4️⃣ conda로 패키지 목록 확인
conda list
5. pip vs conda
| 항목 | pip | conda |
|---|---|---|
| 설치 방식 | PyPI(파이썬 패키지 인덱스)에서 직접 | Anaconda의 자체 저장소에서 설치 |
| 사용 용도 | 파이썬 패키지 설치 | 파이썬 및 데이터 과학 패키지 모두 |
| 패키지 관리 범위 | 파이썬만 설치/관리 | 파이썬뿐만 아니라, R, Julia 등도 관리 |
| 환경 관리 | 가상환경(venv)에서 관리 | conda 환경에서 관리 |
Tip: conda는 pip보다 데이터 과학 패키지(예: numpy, pandas, scipy) 관리에 더 유리합니다.
하지만 일반적인 파이썬 개발에는 pip이 더 많이 사용됩니다.
6. 가상환경, 패키지 설치, 의존성 관리 베스트 프랙티스
1️⃣ 항상 가상환경을 사용해라
- 프로젝트별로 독립적인 환경을 유지할 수 있어 패키지 충돌을 방지합니다.
2️⃣ requirements.txt 파일을 관리하라
- 프로젝트를 다른 사람과 공유할 때는
requirements.txt파일을 통해 필요한 패키지를 설치할 수 있게 합니다.
3️⃣ 패키지 버전 고정:
- 버전 충돌을 방지하려면
requirements.txt에 패키지 버전을 명시합니다. - 예시:
requests==2.28.1
numpy>=1.21.0
7. 자주 묻는 질문(FAQ)
Q. pip과 conda가 동시에 설치되어 있으면 어떤 걸 사용해야 하나요?
A. 일반적인 파이썬 개발에는 **pip**을 사용하는 것이 좋습니다. 데이터 과학 패키지를 관리할 때는 **conda**가 더 유리할 수 있습니다.
Q. pip로 설치한 패키지가 conda 환경에서 잘 작동하지 않아요.
A. conda 환경에서 패키지 충돌을 피하려면 **conda**를 사용해서 설치하고, pip는 가급적 conda 환경 내에서만 사용하세요.
Q. 가상환경을 여러 개 만들어 놓고 환경을 전환하는 방법은?
A. conda 또는 venv로 만든 환경을 conda activate 또는 **source .venv/bin/activate**로 전환할 수 있습니다.
8. 요약 한 줄
가상환경은 프로젝트 격리와 패키지 관리를 위한 필수 도구!
pip과 conda로 필요한 패키지를 설치하고, **requirements.txt**로 환경을 공유하자 ✅
이전 강좌 👈 [도구/환경#1] VSCode 빠른 세팅 (확장, 단축키, 디버깅)
다음 강좌 👉 [도구/환경#3] Git과 GitHub 연동 (버전 관리 시작하기)