파이썬 가상환경(Virtual Environment) 완전 쉽게 이해하기!
1. 가상환경이란 무엇인가요?
가상환경(VirtualEnvironment)이란, 말 그대로"가짜"환경을 만드는 것입니다.
조금 더 쉽게 말하면, 내 컴퓨터 안에 '나만의 파이썬 세상'을 따로 하나 만든다고 생각하면 됩니다.
예를 들어,
프로젝트 A에서는 `Django 3.2`를 쓰는데
프로젝트 B에서는`Django 5.0`을써야한다면?
둘 다 설치하면 충돌이 나서 문제가 생길 수 있어요.
이걸 막기 위해 프로젝트 별로 독립된 공간, 즉"가상환경"을만들어서각각 필요한 것만 설치해서 쓰는 것입니다!
2. 가상환경을 꼭 써야 하나요?
사실, 파이썬만 잠깐 맛보기로 쓸 때는 필요 없을 수도 있습니다.
하지만 조금이라도 프로젝트를 만들거나, 뭔가 제대로 개발하고 싶다면 무조건 사용하는 걸 추천합니다!
왜냐하면:
- 프로젝트별로 버전 관리가 깔끔해지고
- 내 컴퓨터 전체를 지저분하게 만들지 않게** 도와주고
- 나중에 프로젝트를 다른 사람한테 넘기거나 협업할 때 훨씬 편해지기 때문입니다.
조금 귀찮더라도 습관 들여두면 앞으로가 훨씬 수월합니다.
3. 가상환경 만들기 (초간단)
가상환경을 만들려면, 먼저 터미널(명령어 입력창)을 열어야 합니다!
윈도우에서는 명령 프롬프트(cmd) 또는 파워셸(PowerShell) 을 사용하면 됩니다.
(※ Mac이나 리눅스도 거의 똑같이 따라 할 수 있어요!)
1-1. 원하는 폴더로 이동하기
우선, 가상환경을 만들고 싶은 폴더로 이동합니다.
cd 원하는/폴더/경로
1-2. 가상환경 만들기
이제 아래 명령어를 입력해서 가상환경을 만들어줍니다.
python -m venv 가상환경이름
예를 들어, 가상환경 이름을 venv로 하고 싶다면?
python -m venv venv
이렇게 하면 가상환경 폴더가 생깁니다.
4. 가상환경 활성화하기 (켜기)
가상환경을 만들었으면, 이제 "켜야" 합니다!
윈도우 기준으로 설명드릴게요.
.\가상환경이름\Scripts\activate
예를 들어, venv라는 이름으로 만들었다면:
.\venv\Scripts\activate
엔터를 치면, 프롬프트 앞에 (venv) 이런 표시가 생길 거예요.
이제 여기서 설치하는 모든 것들은 이 가상환경 안에만 적용됩니다.
5. 가상환경 끄기 (비활성화)
개발이 끝났다면, 가상환경을 꺼줘야겠죠?
아주 간단합니다!
deactivate
명령어 하나로 바로 꺼집니다.
프롬프트 앞의 (venv) 표시도 사라질 거예요.
6. 가상환경 안에서 라이브러리 설치하기
가상환경이 활성화된 상태라면, 원하는 라이브러리를 설치할 수 있습니다.
예를 들어, requests라는 라이브러리를 설치하고 싶으면?
pip install requests
이렇게 설치하면 가상환경 안에만 깔리기 때문에, 다른 프로젝트와 섞일 걱정이 없습니다. 정말 깔끔하죠?
7. requirements.txt 파일로 라이브러리 관리하기!
가상환경을 쓸 때 또 하나 알아두면 좋은 게 바로 requirements.txt 파일입니다.
이게 뭐냐면, "내 프로젝트에 필요한 라이브러리 목록을 한 번에 정리한 파일"입니다!
8. 왜 requirements.txt를 써야 할까?
- 프로젝트에 설치한 라이브러리를 한 번에 기록할 수 있고
- 다른 사람한테 프로젝트를 넘길 때 "이거 설치해!" 대신 "requirements.txt만 설치하면 끝나!" 라고 할 수 있어서
- 새로운 환경(예를 들면 다른 컴퓨터)에서도 한 방에 설치할 수 있습니다.
진짜로, 한 줄로 다 설치할 수 있어요. 너무 편합니다.
9. requirements.txt 파일 만드는 방법
가상환경이 켜진 상태에서, 다음 명령어를 입력합니다.
pip freeze > requirements.txt
pip freeze : 현재 가상환경에 설치된 모든 라이브러리를 보여주는 명령어입니다.
> : 그 결과를 requirements.txt라는 파일에 저장한다는 뜻입니다.
요 한 줄이면 끝입니다!
프로젝트 폴더 안에 requirements.txt 파일이 생겼을 거예요.
파일을 열어보면 이런 식으로 설치된 라이브러리 목록이 쭉 써져 있습니다.
Django==4.0.6
requests==2.31.0
pytz==2023.3
10. requirements.txt로 한 방에 설치하는 방법
이제 다른 컴퓨터나 다른 사람이 내 프로젝트를 받았을 때, 일일이 라이브러리 설치할 필요 없이 이 한 줄만 입력하면 됩니다!
pip install -r requirements.txt
📢 -r은 파일을 읽어서 그 안에 있는 라이브러리를 설치하라는 뜻입니다.
11. 주의할 점
- requirements.txt는 가상환경을 켜고 만든다 → 그래야 필요 없는 라이브러리가 안 들어갑니다.
- 필요 없는 라이브러리까지 같이 freeze 될 수 있으니, 가끔 필요한 것만 정리해서 다시 만드는 것도 좋습니다.
- 수정할 일이 생기면, 그냥 텍스트 파일처럼 직접 열어서 고쳐도 됩니다!
요약정리!
설치된 라이브러리 목록 저장 | pip freeze > requirements.txt |
목록에 따라 라이브러리 설치 | pip install -r requirements.txt |