카테고리: 파이썬 (Python)

파이썬 가상환경(venv) 완벽 정리 - 만들기부터 활성화·삭제까지!

목차9개 항목

안녕하세요! Mojangcam입니다 😎

디스코드 봇 시리즈랑 파이썬 업무 자동화 #1 - 엑셀 자동화 글을 따라하다 보면 pip install을 정말 많이 하게 되죠? 그런데 프로젝트마다 라이브러리를 전부 컴퓨터 전체에 깔아버리면, 언젠가 버전이 충돌하면서 "어제까지 되던 봇이 오늘 안 돼요" 사태가 터져요 😅

오늘은 그걸 막아주는 가상환경(venv) 을 완벽 정리해볼게요. 만들기 → 켜기/끄기 → 패키지 관리 → 삭제까지, 이 글 하나면 끝나도록 구성했어요!

🧠 가상환경이 왜 필요한가요?

가상환경은 한마디로 프로젝트마다 따로 쓰는 독립된 파이썬 방이에요. 방마다 설치된 라이브러리가 다르니까 서로 안 엉킵니다.

  • 디스코드 봇 프로젝트는 discord.py 2.x, 크롤러 프로젝트는 requests… 이렇게 프로젝트별로 분리할 수 있어요
  • 라이브러리 버전 충돌을 예방해요 (A 프로젝트는 구버전, B는 신버전이 필요할 때!)
  • requirements.txt로 다른 컴퓨터에서도 똑같은 환경을 그대로 재현할 수 있어요 (VPS 배포할 때 필수!)

📌 준비물

  • Python 3.14.x (현재 최신 안정 버전, 3.8 이상이면 동일하게 동작) — venv는 파이썬에 기본 내장이라 별도 설치가 필요 없어요!
  • 터미널: Windows는 PowerShell(또는 cmd), Mac/리눅스는 기본 터미널

📌 1단계 - 가상환경 만들기

프로젝트 폴더로 이동해서 딱 한 줄이면 끝이에요.

nginx
# 프로젝트 폴더로 이동 후
python -m venv venv

하나씩 뜯어볼게요 💡

  • python -m venv : 파이썬에 내장된 venv 모듈을 실행하라는 뜻이에요. Mac/리눅스는 python3 -m venv venv로 쓰세요.
  • 마지막 venv : 만들어질 폴더 이름이에요. 관례적으로 venv나 .venv를 제일 많이 써요.

실행하면 프로젝트 폴더 안에 venv 폴더가 생기고, 그 안에 독립된 파이썬과 pip이 복사돼요.

📌 2단계 - 활성화 & 비활성화

운영체제마다 명령어가 조금 달라요. 여기서 제일 많이 헷갈려요!

vala
# Windows (PowerShell)
venv\Scripts\Activate.ps1

# Windows (cmd)
venv\Scripts\activate.bat

# Mac / 리눅스
source venv/bin/activate

활성화에 성공하면 프롬프트 앞에 (venv) 가 붙어요. 이 상태에서 설치하는 패키지는 전부 이 방 안에만 들어가요. 나올 때는 어느 OS든 deactivate 한 마디면 돼요.

📌 3단계 - 패키지 설치와 requirements.txt

활성화된 상태에서 평소처럼 설치하면 돼요.

코드
pip install discord.py requests

# 지금 환경의 패키지 목록을 파일로 저장
pip freeze > requirements.txt

# 다른 컴퓨터/서버에서 한 방에 복원
pip install -r requirements.txt

하나씩 뜯어볼게요 💡

  • pip freeze : 현재 가상환경에 설치된 패키지와 버전을 전부 출력해요.
  • requirements.txt : 이 파일만 있으면 누가 받아도 똑같은 환경을 만들 수 있어요. 디스코드 봇을 24시간 호스팅에 올릴 때도 이 파일이 필수예요!
  • -r : requirements.txt에 적힌 목록을 그대로 설치하라는 옵션이에요.

📌 전체 명령어 모음 (복붙 OK)

vala
# Python 3.8+ (작성 기준: Python 3.14.6)
# 1) 가상환경 생성
python -m venv venv

# 2) 활성화 (Windows PowerShell)
venv\Scripts\Activate.ps1
#    활성화 (Mac/리눅스)
# source venv/bin/activate

# 3) 패키지 설치 & 목록 저장
pip install discord.py
pip freeze > requirements.txt

# 4) 다 쓰면 비활성화
deactivate

# 5) 가상환경 삭제는 폴더만 지우면 끝! (Windows)
rmdir /s /q venv
#    (Mac/리눅스) rm -rf venv

📌 실행 결과

코드
PS C:\projects\mybot> venv\Scripts\Activate.ps1
(venv) PS C:\projects\mybot> pip install discord.py
Successfully installed discord.py-2.x ...
(venv) PS C:\projects\mybot> deactivate
PS C:\projects\mybot>

📌 자주 나는 에러

  1. 이 시스템에서 스크립트를 실행할 수 없으므로... (UnauthorizedAccess) — 원인: Windows PowerShell의 실행 정책이 스크립트 실행을 막아서 발생해요. 해결: PowerShell에서 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 실행 후 다시 활성화하세요. (cmd의 activate.bat을 쓰는 우회법도 있어요)
  2. 'python'은(는) 내부 또는 외부 명령이 아닙니다 — 원인: 파이썬 설치 시 PATH 등록이 안 된 경우예요. 해결: 설치 프로그램에서 Add python.exe to PATH 체크 후 재설치하거나, py -m venv venv처럼 py 런처를 사용하세요.
  3. 분명 설치했는데 ModuleNotFoundError — 원인: 패키지는 가상환경에 깔았는데 실행은 전역 파이썬으로 하는 경우(또는 반대)예요. 해결: 터미널에 (venv) 가 붙어있는지 확인하고, VS Code라면 우하단 인터프리터를 venv의 파이썬으로 선택하세요.

📌 마무리

오늘은 파이썬 가상환경(venv)을 만들고, 켜고 끄고, requirements.txt로 환경을 저장하는 법까지 전부 정리해봤어요! 이제 프로젝트마다 깨끗한 환경으로 시작할 수 있겠죠? 🙌

앞으로는 파이썬·디스코드 봇·업무 자동화 글을 집중적으로 올릴 예정이에요. 다음 편에서는 파이썬으로 이메일 자동 발송하기를 다뤄볼게요. 기대해주세요!

글쓴이

Mojangcam

직접 코드를 짜고, 서버를 돌리고, 막힌 에러를 해결하며 배운 것들을 기록하는 개발·IT 실전 기록 블로그