가상환경은 python3 -m venv 이름 한 줄이고, GPU가 잡혔는지는 torch.cuda.is_available()로 확인합니다. AI 튜토리얼이 전부 이 두 단계로 시작하는데 정작 설명은 건너뜁니다. 여기서 막히면 그다음이 전부 막히므로 실제 출력까지 붙여 정리했습니다.
왜 가상환경부터 만드나
시스템 파이썬에 바로 설치하면 프로젝트끼리 버전이 충돌합니다. A 프로젝트가 torch 2.1을 요구하는데 B가 2.11을 요구하면 둘 중 하나는 깨집니다. 가상환경은 프로젝트마다 독립된 패키지 폴더를 만듭니다.
비용은 거의 없습니다. 실제로 재보면 생성에 1.2초, 용량은 12MB입니다. 지울 때도 폴더만 삭제하면 끝입니다.
만들고 켜고 끄기
python3 -m venv venvdemo
source venvdemo/bin/activate # 윈도우: venvdemo\Scripts\activate
deactivate
켜졌는지 확인하는 가장 확실한 방법은 파이썬 경로를 보는 것입니다. 프롬프트 앞의 괄호 표시는 셸 설정에 따라 안 뜰 수 있습니다.
활성화 후 : which python → /tmp/venvdemo/bin/python
환경변수 : VIRTUAL_ENV = /tmp/venvdemo
경로가 가상환경 폴더 안을 가리키면 성공입니다. 여전히 시스템 경로가 나오면 활성화가 안 된 것이고, 이 상태로 설치하면 패키지가 시스템에 들어갑니다.
새 환경은 정말 비어 있다
막 만든 환경에서 pip list를 찍으면 이렇습니다.
Package Version
------- -------
pip 25.3
패키지가 pip 하나뿐입니다. 시스템에 torch가 깔려 있어도 가상환경 안에서는 ModuleNotFoundError: No module named 'torch'가 납니다. 실제로 그렇게 났습니다. 버그가 아니라 격리가 정상 작동한 것입니다. 환경마다 다시 설치해야 합니다.
시스템 패키지를 같이 쓰고 싶으면 생성할 때 --system-site-packages를 붙입니다. 다만 격리가 깨지므로 토치처럼 용량이 큰 것만 공유할 때 쓰는 예외 수단입니다.
GPU가 잡혔는지 확인
설치 후 가장 먼저 할 일입니다. 네 줄이면 환경 전체가 드러납니다.
import torch
print(torch.__version__)
print(torch.cuda.is_available(), torch.cuda.device_count())
print(torch.version.cuda)
print(torch.backends.mps.is_available()) # 맥
맥(M5 Max)에서 실제로 돌린 출력입니다.
| 항목 | 출력 | 뜻 |
|---|---|---|
| torch | 2.11.0 | 설치된 버전 |
| cuda.is_available | False | 엔비디아 GPU 없음 |
| cuda.device_count | 0 | 잡힌 CUDA 장치 수 |
| torch.version.cuda | None | CPU·MPS 빌드 |
| mps.is_available | True | 애플 GPU 가속 가능 |
torch.version.cuda가 None이면 CUDA를 지원하지 않는 빌드를 설치한 것입니다. 엔비디아 GPU가 있는데 이 값이 None이면 드라이버가 아니라 설치한 torch 빌드를 의심하십시오. 버전 조합은 파이토치 CUDA 버전표에 정리했습니다.
안 잡힐 때 확인 순서
- 가상환경이 켜져 있는지 본다. which python 경로가 환경 폴더 안이어야 한다.
- nvidia-smi 를 실행한다. 명령이 없으면 드라이버 문제, GPU가 보이면 드라이버는 정상이다.
- torch.version.cuda 를 본다. None 이면 CPU 빌드를 받은 것이므로 torch를 다시 설치한다.
- 그래도 False 면 torch 버전과 드라이버 CUDA 버전 조합을 맞춘다.
맥에는 nvidia-smi가 아예 없습니다. 2번에서 명령을 못 찾는 게 정상이고, 맥은 CUDA 대신 mps를 씁니다. 코드에서 장치를 지정할 때 "cuda" 대신 "mps"를 넣으면 됩니다. 실제 사용 예는 transformers 사용법에 있습니다.
자주 묻는 질문
가상환경을 지우려면요?
폴더를 삭제하면 끝입니다. 언인스톨 절차가 없습니다. 활성화 상태면 deactivate 먼저 하십시오.
conda와 venv 중 뭘 써야 하나요?
파이썬 패키지만 다루면 venv로 충분하고 가볍습니다. CUDA 툴킷처럼 파이썬 밖 의존성까지 관리해야 하면 conda가 편합니다.
torch.cuda.is_available()이 False인데 GPU는 있습니다.
대부분 CPU 빌드를 설치한 경우입니다. torch.version.cuda가 None인지 먼저 확인하십시오.
가상환경마다 torch를 또 받아야 하나요?
기본적으로는 그렇습니다. 용량이 부담되면 --system-site-packages로 만들어 공유할 수 있지만 격리가 약해집니다.
답글 남기기