
파이썬 개발에서 가상 환경(Virtual Environment)은 프로젝트마다 독립된 작업 공간을 구축하는 데 필수적인 도구입니다. 파이썬 3.3부터 기본 모듈로 제공되는 venv
는 이러한 가상 환경을 손쉽게 생성하고 관리할 수 있게 해줍니다.
가상 환경을 사용하는 이유
가상 환경을 사용하면 다음과 같은 이점을 얻을 수 있습니다.
- 종속성 충돌 방지: 여러 프로젝트를 동시에 진행할 때, 각 프로젝트가 필요로 하는 라이브러리의 버전이 다를 수 있습니다. 가상 환경은 프로젝트별로 독립된 패키지 설치 공간을 제공하여 전역 환경이나 다른 프로젝트와의 충돌을 막아줍니다.
- 재현성 확보:
requirements.txt
파일을 통해 특정 프로젝트에 사용된 모든 패키지와 그 버전을 명확히 기록할 수 있습니다. 이를 통해 다른 개발자가 동일한 환경을 쉽게 구성하거나, 미래에 프로젝트를 다시 시작할 때도 완벽하게 재현할 수 있습니다. - 체계적인 관리: 전역 파이썬 설치 공간에 불필요한 패키지가 쌓이는 것을 방지하고, 각 프로젝트에 필요한 패키지만 깔끔하게 관리할 수 있습니다.
- 배포 효율성: 프로젝트 배포 시 필요한 최소한의 의존성만을 정확하게 파악하여, 불필요한 파일 없이 효율적인 배포가 가능합니다.
venv 사용법
venv
는 파이썬 3.3 이상 버전에 기본적으로 포함되어 있어 별도의 설치가 필요 없습니다.
1. 프로젝트 디렉토리 준비
가상 환경을 생성할 프로젝트의 디렉토리로 이동합니다. 아직 디렉토리가 없다면 새로 만듭니다.
mkdir my_project
cd my_project
2. 가상 환경 생성
아래 명령어를 사용하여 가상 환경을 만듭니다. env_name
부분은 원하는 가상 환경 이름으로, 일반적으로 venv
나 env
를 사용합니다.
python -m venv env_name
예시:
python -m venv venv # 'venv'라는 이름의 가상 환경 생성
이 명령을 실행하면 현재 디렉토리 안에 venv
라는 새로운 폴더가 생성되며, 이곳에 가상 환경의 모든 파일이 저장됩니다.
3. 가상 환경 활성화
생성된 가상 환경을 사용하려면 활성화 과정을 거쳐야 합니다. 운영체제에 따라 방법이 다릅니다.
- Windows:
.\venv\Scripts\activate
- macOS / Linux:
source venv/bin/activate
활성화가 완료되면 터미널 프롬프트 앞에 가상 환경 이름이 표시됩니다. (예: (venv) C:\my_project>
)
4. 패키지 설치
가상 환경이 활성화된 상태에서 pip
를 사용해 필요한 라이브러리를 설치하면, 이 패키지들은 전역 환경이 아닌 현재 가상 환경에만 설치됩니다.
pip install requests
설치된 패키지 목록은 pip list
명령으로 확인할 수 있습니다.
5. 의존성 목록 기록
프로젝트의 패키지 의존성을 다른 사람과 공유하거나 나중에 재설치하기 위해 requirements.txt
파일로 기록하는 것이 좋습니다.
pip freeze > requirements.txt
이 명령어는 현재 가상 환경에 설치된 모든 패키지와 버전을 파일에 기록합니다.
6. 의존성 일괄 설치
requirements.txt
파일이 있다면, 다른 환경에서 아래 명령어를 사용해 모든 패키지를 한 번에 설치할 수 있습니다.
pip install -r requirements.txt
7. 가상 환경 비활성화
가상 환경 사용을 마치려면 비활성화해야 합니다.
deactivate
이 명령을 실행하면 터미널 프롬프트에서 가상 환경 이름이 사라지고 전역 환경으로 돌아갑니다.
venv 사용 시 유용한 팁
.gitignore
활용: 가상 환경 디렉토리(venv/
등)는 Git 저장소에 포함시키지 않도록.gitignore
파일에 추가합니다. 가상 환경은requirements.txt
를 통해 언제든 다시 만들 수 있기 때문입니다.
# .gitignore 예시
venv/
*.pyc
__pycache__/
- IDE 연동: VS Code나 PyCharm과 같은 대부분의 IDE는
venv
를 지원합니다. 프로젝트를 열 때 IDE가 가상 환경을 자동으로 인식하거나, 설정에서 직접 지정할 수 있습니다. - 파이썬 버전 관리:
venv
는 특정 파이썬 버전 기반의 가상 환경을 생성합니다. 만약 여러 파이썬 버전을 관리해야 한다면pyenv
나conda
와 같은 별도의 도구를 함께 사용해 파이썬 버전 자체를 관리하는 것이 좋습니다.