파이썬 개발의 필수! **가상 환경 (Virtual Environment)** 설정 및 사용법 완벽 가이드 (venv)
파이썬으로 여러 프로젝트를 진행할 때, 프로젝트마다 필요한 **패키지(라이브러리)의 버전**이 달라 충돌이 발생하는 경험을 해보셨을 겁니다. 이 문제를 해결해주는 마법 같은 도구가 바로 **가상 환경 (Virtual Environment)**입니다.
가상 환경은 프로젝트별로 독립된 개발 공간을 만들어 의존성 충돌을 원천적으로 막아줍니다. 오늘은 파이썬 표준 라이브러리인 venv를 사용하여 가상 환경을 만들고 사용하는 방법을 초보자도 따라 할 수 있도록 단계별로 자세히 알아보겠습니다.
1. 가상 환경(Virtual Environment)이 왜 필요한가요?
가상 환경이 없다면, 여러분이 설치하는 모든 패키지들은 시스템 전체의 파이썬 환경에 설치됩니다. 다음과 같은 문제가 발생할 수 있습니다.
- 의존성 충돌: 프로젝트 A는 Django 3.x를 필요로 하고, 프로젝트 B는 Django 4.x를 필요로 한다면, 시스템 환경에서는 둘 중 하나만 설치할 수 있어 충돌이 발생합니다.
- 불필요한 패키지 누적: 필요 없는 패키지들이 전역 환경에 계속 쌓여 시스템 환경이 지저분해집니다.
- 배포의 어려움: 내 컴퓨터에서는 잘 작동하지만, 다른 환경에서는 작동하지 않는 '버전 문제'가 생길 수 있습니다.
가상 환경을 사용하면 각 프로젝트는 자신만의 독립된 패키지 저장소를 갖게 되어, 서로 영향을 주지 않고 안정적으로 개발할 수 있습니다.
2. 파이썬 `venv`를 이용한 가상 환경 설정 3단계
파이썬 3.3 버전 이상부터는 별도의 설치 없이 venv 모듈을 통해 가상 환경을 만들 수 있습니다. 이제부터 터미널(또는 명령 프롬프트)을 열고 따라 해보세요.
1단계: 가상 환경 생성하기
프로젝트 폴더로 이동한 후, 다음 명령어를 실행합니다. env_name 부분은 원하는 이름으로 자유롭게 지정할 수 있습니다. (일반적으로 venv, .venv, env 등을 많이 사용합니다.)
python -m venv env_name
이 명령을 실행하면 현재 폴더 안에 env_name이라는 새로운 폴더가 생기고, 그 안에 독립된 파이썬 실행 파일과 패키지 폴더가 생성됩니다.
2단계: 가상 환경 활성화(Activation)하기
가상 환경을 생성했더라도, 이를 '활성화'해야만 지금부터 설치하는 패키지들이 이 환경 안에 설치됩니다. 운영체제별로 활성화 방법이 다릅니다.
**💻 Windows (명령 프롬프트/PowerShell)**
env_name\Scripts\activate
**🍎 macOS 또는 Linux (Bash/Zsh)**
source env_name/bin/activate
활성화에 성공하면 터미널 프롬프트 앞에 **(env_name)**과 같이 가상 환경 이름이 표시되는 것을 확인할 수 있습니다. 이제 여기서 패키지를 설치하면 이 프로젝트에만 적용됩니다. 예를 들어:
(env_name) pip install requests
3단계: 가상 환경 비활성화(Deactivation)하기
해당 프로젝트 작업이 끝났다면, 다음 명령어로 가상 환경을 빠져나와 시스템 환경으로 돌아갈 수 있습니다. 아주 간단합니다.
deactivate
프롬프트 앞에 표시되던 (env_name) 표시가 사라진 것을 확인하세요. 이제 다시 전역 파이썬 환경으로 돌아왔습니다.
3. 핵심 정리: 가상 환경 사용의 장점
이제 여러분은 **파이썬 가상 환경**을 완벽하게 다룰 수 있게 되었습니다. 가상 환경을 사용함으로써 얻는 이점은 다음과 같습니다:
- **안정적인 개발:** 프로젝트 간 간섭이 없어졌으므로 의존성 충돌 걱정 없이 개발에 집중할 수 있습니다.
- **깔끔한 관리:** 필요한 패키지만 설치되므로
pip freeze > requirements.txt명령을 통해 프로젝트의 의존성 목록을 깔끔하게 공유하고 관리할 수 있습니다. - **쉬운 배포:**
requirements.txt파일만 있으면 어디서든 동일한 환경을 쉽게 구축할 수 있습니다.
오늘 배운 `venv` 사용법을 활용하여 더욱 체계적이고 효율적인 파이썬 개발을 시작해 보세요! 🚀
'Language > Python' 카테고리의 다른 글
| [Python] 파이썬 꼭 알아야할 정규식 3가지와 알아야 할 메서드 (0) | 2020.09.16 |
|---|




