Windows CMD에서 Python과 OpenAI SDK 설치 환경 확인하기
pip install openai는 끝났는데 프로그램에서 No module named 'openai'가 나온다면, 먼저 설치한 Python과 실행한 Python이 같은지 확인하세요. 패키지를 다시 설치하기 전에 실행 파일 경로, 패키지 위치, 실제로 읽히는 모듈을 한 묶음으로 보면 원인을 좁힐 수 있습니다.
이 글은 Python이 있는 Windows PC에서 새 연습 폴더의 가상환경을 만들고 OpenAI Python SDK의 설치 상태를 확인하는 안내입니다. API 키를 만들거나 모델을 호출하지 않습니다. OpenAI SDK는 프로그램에서 API를 사용하는 라이브러리이며, 설치만으로 로컬 AI 모델이나 ChatGPT Windows 앱이 생기지는 않습니다.

Python 버전과 연습 폴더부터 고정하기
2026-10-04 KST 기준 공식 OpenAI SDK와 PyPI 안내는 Python 3.10 이상을 요구합니다. 이 글의 재현 기준 패키지는 openai==3.24.0입니다. 나중에 다른 버전을 사용할 때는 해당 버전의 Python 요구사항을 다시 확인하세요. 공식 OpenAI Python SDK, OpenAI 패키지 정보
Windows에서 명령 프롬프트(CMD)를 열고 다음 한 줄을 실행합니다.
py --version
Python 버전이 표시되면 기록하고 3.10 이상인지 확인합니다. 더 낮은 버전이라면 이 SDK 설치 단계로 넘어가지 않고 공식 Python 안내에서 사용할 런타임을 먼저 정합니다. 명령을 찾지 못하거나 Python 실행 대신 다른 안내가 나온다면 여기서 멈추고 설치 상태부터 확인하세요. Windows의 현재 Python 설치 관리자와 기존 런처는 구성에 따라 다를 수 있으므로, 임의 경로를 PATH에 추가하거나 여러 Python을 지우는 것을 첫 조치로 삼지 않습니다. Python Windows 공식 안내
권한 있는 위치에 아직 사용하지 않은 AI-SDK-Practice 폴더를 만듭니다. 아래 경로가 이미 있다면 기존 프로젝트를 그대로 재사용하지 말고 다른 새 폴더를 고르세요. 각 명령이 실패하면 다음 줄로 넘어가지 않습니다.
mkdir "%USERPROFILE%\AI-SDK-Practice"
cd /d "%USERPROFILE%\AI-SDK-Practice"
py -m venv .venv
가상환경은 이 연습의 패키지를 다른 프로젝트와 분리하는 용도입니다. 이후 명령은 모두 이 폴더에서 실행하며 .venv\Scripts\python.exe를 직접 지정합니다. 공식 문서도 가상환경의 Python 경로를 직접 호출하면 활성화 없이 사용할 수 있다고 설명합니다. Python 가상환경 안내
pip도 같은 Python으로 실행하기
다음 명령으로 가상환경의 Python과 pip를 먼저 확인한 뒤 SDK를 설치합니다.
.venv\Scripts\python.exe --version
.venv\Scripts\python.exe -m pip --version
.venv\Scripts\python.exe -m pip install "openai==3.24.0"
.venv\Scripts\python.exe -m pip show openai
python.exe -m pip는 앞에 지정한 Python으로 pip 모듈을 실행합니다. 별도의 pip 명령이 어느 설치본과 연결됐는지 추측하는 일을 줄여 줍니다. Python Packaging의 pip·가상환경 안내
pip show의 Version은 이 실습에서는 3.24.0이어야 합니다. Location은 새 프로젝트의 .venv 안에 있는 패키지 위치인지 확인합니다. 전체 경로는 사용자 이름과 설치 위치에 따라 달라집니다. 다른 환경의 경로가 보이면 “설치 완료”를 기록하기 전에 명령 앞의 Python 경로부터 대조하세요.
패키지 다운로드에는 네트워크가 필요합니다. 조직에서 허용한 패키지 저장소나 설치 정책이 있다면 그 조건을 먼저 따릅니다. 인증서 오류를 해결하려고 TLS 검사를 끄거나, 출처를 확인하지 않은 설치 파일을 대신 실행하지 않습니다.
설치 위치와 모듈 가림을 한 번에 점검하기
연습 폴더에 env_check.py라는 새 파일을 만들고 아래 코드를 그대로 저장하세요. 파일 이름을 openai.py로 정하면 설치된 패키지와 이름이 겹칠 수 있습니다.
import importlib.metadata as metadata
import importlib.util
import json
from pathlib import Path
import platform
import sys
result = {
'python_version': platform.python_version(),
'executable': sys.executable,
'in_virtual_environment': sys.prefix != sys.base_prefix,
'openai_version': None,
'openai_module': None,
'status': 'PACKAGE_MISSING',
}
spec = importlib.util.find_spec('openai')
try:
dist = metadata.distribution('openai')
except metadata.PackageNotFoundError:
dist = None
if spec is not None:
result['openai_module'] = spec.origin
if dist is not None:
result['openai_version'] = dist.version
if spec is not None and dist is not None:
expected = Path(dist.locate_file('openai')).resolve()
origin = Path(spec.origin).resolve() if spec.origin else None
if origin is None or not origin.is_relative_to(expected):
result['status'] = 'MODULE_SHADOWED'
else:
from openai import OpenAI
result['status'] = 'READY_LOCAL_IMPORT'
print(json.dumps(result, ensure_ascii=False, indent=2))
sys.exit(0 if result['status'] == 'READY_LOCAL_IMPORT' else 2)
CMD에서 실행합니다.
.venv\Scripts\python.exe env_check.py
echo %ERRORLEVEL%
echo는 바로 앞 실행 직후에 입력합니다. 중간에 다른 명령을 실행하면 종료 코드가 달라질 수 있습니다. 출력에는 Python 버전·실행 파일, 가상환경 여부, OpenAI 배포 버전, 선택된 모듈 파일과 상태가 나옵니다. API 키나 환경변수 전체를 출력하는 코드는 없습니다.
| 출력 상태 | 뜻 | 다음 행동 |
|---|---|---|
| READY_LOCAL_IMPORT | 지정한 환경의 설치 패키지에서 OpenAI 클래스를 가져옴 | 가상환경 여부와 경로까지 확인하고 기록 |
| PACKAGE_MISSING | 패키지 또는 선택할 모듈이 없음 | 같은 Python의 -m pip show openai와 설치 결과 확인 |
| MODULE_SHADOWED | 선택된 openai 모듈이 설치 패키지 폴더 밖에 있음 | 프로젝트의 동명 파일·폴더 등 가림 원인을 조사 |
정상 경로의 종료 코드는 0, 이 코드가 판정한 두 실패 상태는 2입니다. in_virtual_environment도 true인지 확인하세요. READY_LOCAL_IMPORT는 SDK를 로컬에서 가져온 상태만 뜻합니다. 계정 권한, API 인증, 과금 조건, 특정 모델 응답까지 통과했다는 표시가 아닙니다. 다른 예외로 실행이 중단되면 이 표의 상태로 억지로 분류하지 말고 오류 문구를 따로 보존합니다.
실제로 확인한 네 가지 로컬 사례
Windows 명령을 이 글에서 직접 실행한 것은 아닙니다. 대신 Linux의 Python 3.12.14에서 서로 다른 새 가상환경 두 개를 만들고, 한쪽에만 openai==3.24.0을 설치해 위 점검 코드를 실행했습니다. 추가로 같은 이름의 합성 파일을 둔 폴더에서 모듈 가림을 확인했습니다. API 키와 모델 요청은 사용하지 않았습니다.
| 실제 로컬 검사 조건 | 상태 | 종료 코드 |
|---|---|---|
| SDK가 설치된 가상환경으로 점검 코드 실행 | READY_LOCAL_IMPORT | 0 |
| SDK를 설치하지 않은 다른 가상환경으로 실행 | PACKAGE_MISSING | 2 |
| SDK 환경을 쓰지만 점검 파일 옆에 합성 openai.py를 둠 | MODULE_SHADOWED | 2 |
| 그 합성 파일을 practice_note.py로 바꾸고 다시 실행 | READY_LOCAL_IMPORT | 0 |
설치된 환경에서 -m pip check도 실행해 의존성 오류가 보고되지 않는 것을 확인했습니다. 이는 Windows에서 같은 설치·파일 시스템 동작을 검증했다는 뜻은 아닙니다. 독자의 PC에서는 위 CMD 절차의 실제 경로와 출력으로 확인해야 합니다.
실패하면 다시 설치하기 전에 확인할 것
다른 Python을 실행한 경우: 패키지가 있는 가상환경의 python.exe로 프로그램도 실행합니다. 편집기에서 실행한다면 선택한 인터프리터 경로가 같은지 확인하세요. 전역 환경까지 재설치하거나 기존 프로젝트를 삭제할 필요부터 찾지 않습니다.
MODULE_SHADOWED인 경우: 출력된 openai_module을 읽습니다. 자신이 만든 연습 파일이 원인이라면 목적에 맞는 다른 이름으로 바꾸고 다시 점검합니다. 실제 프로젝트의 파일·폴더는 가져오기 관계를 확인한 뒤 변경하세요. 모르는 파일을 삭제해 통과시키거나 SDK 자체의 파일명을 바꾸지 않습니다.
pip 자체가 없거나 설치가 실패한 경우: 오류가 Python 실행, pip 모듈, 패키지 다운로드, 버전 요구사항 중 어디에서 났는지 나눕니다. No module named pip는 OpenAI SDK가 없다는 오류와 다릅니다. 현재 Python 배포판의 공식 설치·pip 안내를 확인하며, pip show에 패키지가 없는데 가져오기 성공을 기록하지 않습니다.
예전 예제 코드에서 API 관련 오류가 나는 경우: 이 환경 점검이 통과해도 예제 코드와 SDK 버전의 호환성은 별도입니다. 공식 SDK 사용 예와 설치된 버전을 대조하세요. 설치 오류를 피하려고 오래된 버전을 무작정 고정하거나, 확인되지 않은 API 키를 대화창에 붙여 넣는 조치는 포함하지 않습니다.
다음 작업으로 넘어가기 위한 기록
빈 양식을 복사해 실제 확인한 값만 적습니다. 실행 경로를 다른 사람에게 보여 줄 때는 사용자 이름과 내부 폴더 정보가 불필요하게 노출되지 않게 가립니다.
확인 날짜·시간대:
Windows 버전:
연습 폴더:
Python 버전과 실행 파일:
pip 버전과 경로:
openai 배포 버전:
openai_module 위치:
in_virtual_environment 값:
점검 상태와 바로 확인한 종료 코드:
오류 문구와 적용한 조치:
API 요청은 실행했는가: 이 설치 점검에서는 실행하지 않음
기술 기준일과 실제 로컬 확인일은 2026-10-04 KST입니다. 공식 웹 문서는 Python 3.14.8 안내, 실제 검사는 Python 3.12.14·OpenAI SDK 3.24.0을 기준으로 했습니다. Windows CMD·편집기 인터프리터·인증·모델 응답은 수행하지 않았습니다.
SDK 설치가 끝난 다음에는 사용할 API의 권한·비용·자료 전송 조건을 별도로 검토해야 합니다. 사람에게 필요한 것이 대화창 작업인지 프로그램 연결인지 먼저 정하려면 ChatGPT 무료와 유료를 업무 하나로 판단하는 안내의 구독·API 구분도 함께 확인하세요.