■ 파이썬 가상환경(venv)을 생성하고 설정하는 방법
파이썬으로 개발할 때 가상환경(venv)을 사용하는 이유는 한 마디로 "프로젝트별로 독립된 방(공간)을 만들어 서로 간섭하지 않게 하기 위해서"입니다. 파이썬을 컴퓨터에 처음 설치하면 모든 패키지가 공유 공간(Global 환경)에 설치되는데, 프로젝트가 늘어날수록 다음과 같은 심각한 문제들이 발생합니다. 가상환경은 이를 해결하기 위해 필수적입니다.
💡 가상환경이 필요한 핵심 이유
하나의 PC에서 여러 프로젝트를 동시에 진행할 때, 프로젝트마다 요구하는 패키지의 버전이 다를 수 있습니다.
- A 프로젝트: Django 버전 3.2 필요
- B 프로젝트: Django 버전 5.0 필요
만약 가상환경이 없다면, B 프로젝트를 위해 Django를 5.0으로 업데이트하는 순간 A 프로젝트가 정상적으로 동작하지 않고 에러가 발생할 수 있습니다. 가상환경을 쓰면 A방에는 3.2를, B방에는 5.0을 각각 독립적으로 설치할 수 있습니다.
1) 가상환경 생성
Visual Studio Code(VS Code) 터미널에서 아래 명령어를 입력하여 가상환경을 생성합니다. (myenv는 가상환경 이름이며, 원하는 이름으로 변경 가능합니다.)
| python -m venv myenv |
- python (또는 python3): 시스템에 설치된 파이썬을 실행합니다.
- -m: 파이썬에 내장된 특정 모듈(Module)을 실행하겠다는 옵션입니다.
- venv: 가상환경을 만드는 파이썬 표준 라이브러리 모듈 이름입니다.
- myenv: 생성할 가상환경 폴더의 이름입니다. (원하는 이름으로 자유롭게 바꿀 수 있으며, 보통 venv, .venv, env 등으로 많이 짓습니다.
🛠️ 실행 후 일어나는 일명령어를 실행하면 현재 작업 중인 디렉토리에 myenv라는 이름의 새로운 폴더가 생깁니다.이 폴더 내부에는 글로벌 환경과 분리된 독립적인 파이썬 실행 파일(python.exe)과 패키지들이 저장될 Lib/site-packages 공간이 들어있습니다. 아래와 같은 폴더 및 필요한 파일일 설치 됩니다. myenv L Lib L Scripts L include |
2) 가상환경 활성화 (Activate)
터미널에 아래 경로를 입력하여 가상환경을 활성화합니다. 활성화되면 터미널 프롬프트 맨 앞에 (myenv) 표시가 나타납니다. 파이썬 가상환경에서 '활성화(Activation)'란, 쉽게 말해 "내 컴퓨터에게 지금부터는 글로벌(공용) 파이썬 대신, 내가 방금 만든 독립된 방(가상환경)의 파이썬을 사용하라고 명령하는 조치"입니다.가상환경을 생성하는 것이 '독립된 방을 만들고 파이썬을 복사해 두는 행위'라면, 활성화는 '그 방의 문을 열고 안으로 직접 들어가는 행위'라고 볼 수 있습니다.
가상환경을 만들어만 두고 활성화를 하지 않은 채 pip install이나 python 명령어를 사용하면, 컴퓨터는 평소처럼 글로벌(공용) 파이썬 환경으로 접근합니다. 결국 프로젝트 폴더 안에 가상환경 폴더만 덩그러니 존재할 뿐, 실제 패키지는 컴퓨터 공용 공간에 설치되어 환경이 다시 뒤엉키게 됩니다. 따라서 가상환경을 만든 후나, 컴퓨터를 껐다 켜서 다시 개발을 시작할 때는 항상 활성화 명령어를 먼저 입력하는 것이 필수적입니다.
| myenv\Scripts\activate |
3) VS Code 인터프리터 설정
"내가 작성한 파이썬 코드를 실행할 때, 컴퓨터에 설치된 여러 개의 파이썬 중 '정확히 어떤 파이썬'을 사용하여 코드를 읽고 실행할지 VS Code에게 지정해 주는 행위"입니다. 터미널에서 가상환경을 활성화하는 것과 별개로, 코드 편집기인 VS Code에게도 어떤 환경을 바라봐야 하는지 명확히 알려주는 작업입니다.
- 단축키 Cmd + Shift + P를 누른 후 Python: Select Interpreter를 선택합니다.
- 리스트에서 생성한 가상환경(myenv)의 파이썬 경로를 선택합니다.

🔍 인터프리터 설정의 의미
1. 에러 밑줄(빨간 줄) 해결
가상환경을 만들고 터미널에서 패키지(예: pandas, requests 등)를 분명히 설치했는데도, VS Code 코드 창에 Import "pandas" could not be resolved 같은 빨간색 에러 밑줄이 뜨는 경우가 있습니다. 이것은 터미널은 가상환경을 쓰고 있지만, VS Code의 코드 분석기(Pylance 등)는 여전히 컴퓨터 공용(Global) 파이썬을 바라보고 있기 때문입니다. 인터프리터를 가상환경으로 설정해 주면 VS Code가 해당 가상환경 폴더 안의 패키지들을 올바르게 인식하여 빨간 줄이 사라집니다.
2. VS Code 내 '실행(Run)' 버튼과의 동기화
VS Code 우측 상단의 ▶ (Run) 버튼을 누르거나 디버깅을 시작할 때, VS Code는 현재 지정된 인터프리터의 파이썬 실행 파일을 사용하여 코드를 실행합니다. 만약 인터프리터가 글로벌 파이썬으로 지정되어 있다면, 가상환경에만 설치된 패키지를 불러오지 못하고 ModuleNotFoundError를 뿜어내게 됩니다
💡가상환경 관리 팁
1. 패키지 설치: 가상환경이 활성화된 상태에서 pip install 패키지명(Mac은 pip3 install 패키지명)을 입력하면 해당 가상환경 내에만 독립적으로 패키지가 설치됩니다.
2. 패키지 리스트 저장 및 동일 환경 설치:
- 설치된 패키지 목록 저장: pip freeze > requirements.txt
- 저장된 파일로 다른 곳에서 일괄 설치: pip install -r requirements.txt
3. 비활성화 (종료): 가상환경에서 빠져나오려면 터미널에 아래 명령어를 입력합니다.
| deactivate |
4. 가상환경 삭제: 가상환경을 비활성화한 상태에서 생성된 가상환경 폴더(myenv)를 삭제하면 깔끔하게 제거됩니다.
5. 글로벌 패키지 공유 가상환경 생성 옵션: 시스템에 이미 설치된 공용 패키지들을 공유하면서 가상환경을 만들고 싶다면 생성 시 뒤에 옵션을 붙여줍니다.
| python -m venv myenv --system-site-packages |
■ 객체 탐지(Object Detection) 라이브러리
사진 속에서 사람(인물)과 사물(자동차, 가구, 동물 등)을 구분하려면 객체 탐지(Object Detection) 라이브러리를 사용해야 합니다. 추천하는 4가지 파이썬 라이브러리가 있습니다.
1. Ultralytics YOLO (YOLOv8, YOLOv9, YOLOv11 등):
가장 빠르고 정확한 실시간 객체 탐지 라이브러리입니다. COCO 데이터셋으로 사전 학습되어 있어 사람과 80여 가지의 사물 클래스를 완벽하게 구분하고 위치까지 찾아냅니다
YOLO 내부에서 일어나는 모든 계산은 수학식(수식)으로 이루어져 있지만, 우리가 파이썬 등으로 Ultralytics YOLO 코드를 사용할 때는 복잡한 수학 공식을 직접 코딩할 필요가 없습니다. 라이브러리 내부(C++, 파이썬 엔진)에 이미 수학적 알고리즘이 다 구현되어 있고, 최종적으로 학습된 가중치(수치 데이터) 형태로 저장되어 있기 때문입니다.
대신 사용자는 아주 직관적이고 단순한 함수 몇 줄만으로 이 강력한 수식 덩어리를 움직일 수 있습니다.
from ultralytics import YOLO
# 1. 사전 학습된 모델(거대한 수학 공식과 가중치) 로드
model = YOLO('yolov8n.pt')
# 2. 이미지나 동영상을 모델에 넣고 예측 (내부적으로 수조 번의 행렬 연산 발생)
results = model('soccer_match.jpg')
# 3. 화면에 결과 출력 (사람, 공 등의 위치에 박스가 그려짐)
results[0].show()
2. Hugging Face Transformers:
최신 트랜스포머 기반 비전 모델(DETIC, DETR 등)을 지원합니다. 사전 학습된 모델을 활용해 복잡한 사물과 사람을 매우 정교하게 분류할 수 있습니다.
3.ImageAI: 초보자도 쉽게:
객체 탐지를 구현할 수 있는 파이썬 라이브러리입니다. YOLO나 RetinaNet 같은 복잡한 모델을 몇 줄의 코드로 간단하게 실행할 수 있습니다.
[python] ImageAI 사용해서 image Object Detection(1)
ImageAI 객체 탐지 관련해서 아무것도 모르는 초보자도 쉽게 할 수 있는 모듈이 있다. 이미지 또는 영상에서 객체 탐지를 해주는 AI 모듈이다. 탐지율, 정확도 꽤 높게 나오는 것 같고, 흐린 사진에
run-think-dev.tistory.com
4. OpenCV:
: 이미지 처리 및 컴퓨터 비전의 기본 라이브러리로, 딥러닝 모듈(DNN)을 통해 다양한 모델(YOLO, SSD 등)을 불러와 사람과 사물을 탐지할 수 있습니다
by korealionkk@gmail.com
'업무 자동화 > python' 카테고리의 다른 글
| 도면 PDF에서 문자 정보 가져오기 (0) | 2026.06.20 |
|---|---|
| PDF를 DXF로 변환 하기 (0) | 2026.06.19 |
| 아이폰 사진 속성 정보 가져오기 (0) | 2026.06.13 |
| 이미지 관리 프로그램 # 1 (1) | 2026.06.12 |
| Get dimensions from a Creo model #2 (1) | 2025.09.18 |