가상 환경은 각 프로젝트마다 독립된 작업공간(실행 환경)을 만들어주는 기능임.Ex
프로젝트 A
- Python 3.6
- numpy 1.19.5
- rasterio 1.2.10
프로젝트 B
- Python 3.11
- numpy 2.x
- 최신 opencv
프로젝트 A는 오래된 numpy가 필요함
프로젝트 B는 최신 numpy가 필요함
→ 같은 PC에서 버전 충돌 발생
venv를 사용했음.VS Code 하단 터미널을 열고 가상환경 폴더(.venv)를 생성
py -m venv .venv
생성한 가상환경을 활성화(입장)
.venv\Scripts\activate
# 1. 최신 파이썬이 잘 잡히는지 확인
py --version
# 2. 최신 파이썬으로 가상환경 생성
py -m venv .venv
# 3. 가상환경 활성화
.venv\Scripts\activate
# 4. 라이브러리 재설치
pip install opencv-python numpy rasterio scikit-image
(.venv)가 바로 현재 가상 환경이 활성화 되어 있다는 뜻임.3. 가상환경 활성화가 성공하면 명령어 앞에 (.venv)가 붙음.(.venv) C:\juwon\2026\geometric_correction>pip install opencv-python numpy rasterio scikit-image
WARNING: Cache entry deserialization failed, entry ignored
WARNING: Cache entry deserialization failed, entry ignored
Collecting opencv-python
Using cached opencv_python-4.13.0.92-cp37-abi3-win_amd64.whl.metadata (20 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting numpy
Downloading numpy-2.4.6-cp314-cp314-win_amd64.whl.metadata (6.6 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting rasterio
Downloading rasterio-1.5.0-cp314-cp314-win_amd64.whl.metadata (8.9 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting scikit-image
Downloading scikit_image-0.26.0-cp314-cp314-win_amd64.whl.metadata (15 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting affine (from rasterio)
Using cached affine-2.4.0-py3-none-any.whl.metadata (4.0 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting attrs (from rasterio)
Using cached attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting certifi (from rasterio)
Downloading certifi-2026.5.20-py3-none-any.whl.metadata (2.5 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting click!=8.2.*,>=4.0 (from rasterio)
Downloading click-8.4.1-py3-none-any.whl.metadata (2.6 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting cligj>=0.5 (from rasterio)
Using cached cligj-0.7.2-py3-none-any.whl.metadata (5.0 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting pyparsing (from rasterio)
Using cached pyparsing-3.3.2-py3-none-any.whl.metadata (5.8 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting scipy>=1.11.4 (from scikit-image)
Downloading scipy-1.17.1-cp314-cp314-win_amd64.whl.metadata (60 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting networkx>=3.0 (from scikit-image)
Using cached networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting pillow>=10.1 (from scikit-image)
Downloading pillow-12.2.0-cp314-cp314-win_amd64.whl.metadata (9.0 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting imageio!=2.35.0,>=2.33 (from scikit-image)
Using cached imageio-2.37.3-py3-none-any.whl.metadata (9.7 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting tifffile>=2022.8.12 (from scikit-image)
Downloading tifffile-2026.5.15-py3-none-any.whl.metadata (32 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting packaging>=21 (from scikit-image)
Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting lazy-loader>=0.4 (from scikit-image)
Using cached lazy_loader-0.5-py3-none-any.whl.metadata (5.9 kB)
WARNING: Cache entry deserialization failed, entry ignored
Collecting colorama (from click!=8.2.*,>=4.0->rasterio)
Using cached colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)
Using cached opencv_python-4.13.0.92-cp37-abi3-win_amd64.whl (40.2 MB)
Downloading numpy-2.4.6-cp314-cp314-win_amd64.whl (12.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.5/12.5 MB 26.0 MB/s 0:00:00
Downloading rasterio-1.5.0-cp314-cp314-win_amd64.whl (30.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 30.9/30.9 MB 23.2 MB/s 0:00:01
Downloading scikit_image-0.26.0-cp314-cp314-win_amd64.whl (12.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.0/12.0 MB 27.5 MB/s 0:00:00
Downloading click-8.4.1-py3-none-any.whl (116 kB)
Using cached cligj-0.7.2-py3-none-any.whl (7.1 kB)
Using cached imageio-2.37.3-py3-none-any.whl (317 kB)
Using cached lazy_loader-0.5-py3-none-any.whl (8.0 kB)
Using cached networkx-3.6.1-py3-none-any.whl (2.1 MB)
Downloading packaging-26.2-py3-none-any.whl (100 kB)
Downloading pillow-12.2.0-cp314-cp314-win_amd64.whl (7.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.2/7.2 MB 26.0 MB/s 0:00:00
Downloading scipy-1.17.1-cp314-cp314-win_amd64.whl (37.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 37.3/37.3 MB 27.1 MB/s 0:00:01
Downloading tifffile-2026.5.15-py3-none-any.whl (266 kB)
Using cached affine-2.4.0-py3-none-any.whl (15 kB)
Using cached attrs-26.1.0-py3-none-any.whl (67 kB)
Downloading certifi-2026.5.20-py3-none-any.whl (134 kB)
Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Using cached pyparsing-3.3.2-py3-none-any.whl (122 kB)
Installing collected packages: pyparsing, pillow, packaging, numpy, networkx, colorama, certifi, attrs, affine, tifffile, scipy, opencv-python, lazy-loader, imageio, click, scikit-image, cligj, rasterio
Successfully installed affine-2.4.0 attrs-26.1.0 certifi-2026.5.20 click-8.4.1 cligj-0.7.2 colorama-0.4.6 imageio-2.37.3 lazy-loader-0.5 networkx-3.6.1 numpy-2.4.6 opencv-python-4.13.0.92 packaging-26.2 pillow-12.2.0 pyparsing-3.3.2 rasterio-1.5.0 scikit-image-0.26.0 scipy-1.17.1 tifffile-2026.5.15
(.venv) C:\juwon\2026\geometric_correction>