Python 환경 설정하기
OpenAI Python SDK를 설치하고, 가상 환경을 만들며, 환경 변수를 사용해 API 키를 안전하게 저장하고, 상태 점검으로 모든 것이 정상 작동하는지 확인합니다.
Python 환경 설정하기은(는) CoddyKit의 무료 AI Engineering Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Engineering Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Engineering Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
Why Virtual Environments Matter
AI projects pull in lots of packages, and they clash over versions. A virtual environment gives each project its own isolated Python so nothing collides. The code sets one up.
# Create and activate a virtual environment
# Run these commands in your terminal
python3 -m venv .venv # create environment in .venv/ folder
source .venv/bin/activate # activate on macOS/Linux
# .venv\Scripts\activate # activate on Windows
python --version # verify you are using the right PythonInstalling the OpenAI Python SDK
The official OpenAI Python SDK is how you talk to the API — it handles auth, retries, and parsing. Install it inside your active environment, as the code shows.
# Install the OpenAI SDK
pip install openai
# For production projects, pin the version:
pip install 'openai>=1.30.0,<2.0.0'
# Save your dependencies to requirements.txt:
pip freeze > requirements.txt
# Install from requirements.txt on a new machine:
pip install -r requirements.txtGetting and Storing Your API Key
Your API key is a secret — never put it in code. Store it in a .env file, add that to .gitignore, and load it as an environment variable. The code shows the pattern.
# .env file (never commit this!)
# OPENAI_API_KEY=sk-proj-...
# In your Python script:
import os
from dotenv import load_dotenv
load_dotenv() # reads .env and sets environment variables
api_key = os.environ.get('OPENAI_API_KEY')
if not api_key:
raise ValueError('OPENAI_API_KEY environment variable not set!')
print('API key loaded:', api_key[:8] + '...') # only print prefixInitializing the OpenAI Client
You create one OpenAI() client and call everything through it. If your key is set as an env variable, the client finds it automatically — cleaner and safer.
from openai import OpenAI
# API key is read from OPENAI_API_KEY environment variable automatically
client = OpenAI()
# Or explicitly:
# client = OpenAI(api_key='sk-proj-...') # only for quick tests
# For alternative providers:
# client = OpenAI(
# api_key='your-together-key',
# base_url='https://api.together.xyz/v1'
# )Your First API Health Check
Before building anything, run a tiny health check that lists the models. It confirms your key works, the network is fine, and the SDK is installed. Always run it first.
from openai import OpenAI
client = OpenAI()
# Simple health check: list available models
try:
models = client.models.list()
print(f'Connection successful! Found {len(list(models))} models.')
except Exception as e:
print(f'Connection failed: {e}')Project Structure Best Practices
As projects grow, a consistent project structure saves headaches: keep secrets in .env, code in src/, and a .env.example template so teammates know what's needed.
# Recommended project structure:
# my_ai_project/
# |-- .env (secrets, gitignored)
# |-- .env.example (template, committed)
# |-- .gitignore
# |-- requirements.txt
# |-- README.md
# |-- src/
# | |-- __init__.py
# | |-- client.py (OpenAI client initialization)
# | |-- prompts.py (prompt templates)
# | |-- main.py
# |-- tests/
# |-- notebooks/
# |-- MakefileManaging Multiple API Keys Securely
Juggling many provider keys? A secrets manager like AWS Secrets Manager or Doppler scales better than one .env. Use a separate key per project so you can revoke safely.
# .env.example - commit this as a template
# OPENAI_API_KEY=sk-proj-...your key here...
# OPENAI_ORG_ID=org-...optional org id...
# COHERE_API_KEY=...cohere key...
# PINECONE_API_KEY=...pinecone key...
# PINECONE_ENVIRONMENT=us-east-1-aws
# In code, load all at once:
from dotenv import load_dotenv
import os
load_dotenv()
config = {
'openai_key': os.environ['OPENAI_API_KEY'],
'cohere_key': os.environ.get('COHERE_API_KEY'), # optional
}Using Python Version Managers
Different projects need different Python versions. A version manager like pyenv installs several and switches between them per folder — no system-level conflicts.
# Install pyenv (macOS via Homebrew)
# brew install pyenv
# Install Python 3.11
# pyenv install 3.11.9
# Set Python version for this project directory
# pyenv local 3.11.9
# This creates a .python-version file:
# cat .python-version
# 3.11.9
# Now python3 automatically uses 3.11.9 in this directoryTesting Your Setup With a Real Prompt
The real test is a live prompt that gets a real reply. This end-to-end check validates your setup, key, network, and billing in one shot. Ask for one word: READY.
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI()
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': 'You are a test responder.'},
{'role': 'user', 'content': 'Reply with just the word READY.'}
],
temperature=0,
max_tokens=5
)
print('Response:', response.choices[0].message.content)
print('Model used:', response.model)
print('Tokens used:', response.usage.total_tokens)Using uv for Faster Package Management
uv is a fast, Rust-based package manager that's 10-100x quicker than pip. For heavy AI libraries, a 3-minute install drops to seconds. Worth adopting from day one.
# Install uv (macOS/Linux)
# curl -LsSf https://astral.sh/uv/install.sh | sh
# Create a project with uv
# uv init my-ai-project
# cd my-ai-project
# Add dependencies
# uv add openai python-dotenv
# Run your script using the uv-managed environment
# uv run python main.py
# Generate requirements.txt for compatibility
# uv pip compile pyproject.toml -o requirements.txtEnvironment Variables in Production
In production, .env isn't enough. Platforms like Railway and Vercel inject environment variables at runtime. Your code reads os.environ; only the injected values change.
# Centralized config loader pattern for production
import os
from dataclasses import dataclass
@dataclass
class AppConfig:
openai_api_key: str
environment: str
log_level: str
@classmethod
def from_env(cls):
key = os.environ.get('OPENAI_API_KEY')
if not key:
raise EnvironmentError('OPENAI_API_KEY must be set')
return cls(
openai_api_key=key,
environment=os.environ.get('ENVIRONMENT', 'development'),
log_level=os.environ.get('LOG_LEVEL', 'INFO')
)
config = AppConfig.from_env()Quick Check
Test your understanding of AI Engineering concepts from this lesson.
Lesson Recap
You set up your toolkit: a virtual environment isolates dependencies, API keys live in env variables (never in code), and a health check runs first on any machine. Next: chat. 🎉
자주 묻는 질문
“Python 환경 설정하기” 강의는 무료인가요?
네 — “Python 환경 설정하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Engineering Academy 강의 전체를 잠금 해제할 수 있습니다. AI Engineering Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“Python 환경 설정하기”에서 뭘 배우나요?
OpenAI Python SDK를 설치하고, 가상 환경을 만들며, 환경 변수를 사용해 API 키를 안전하게 저장하고, 상태 점검으로 모든 것이 정상 작동하는지 확인합니다. 브라우저에서 직접 실행하는 실습 코드로 AI Engineering Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AI Engineering Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AI Engineering Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“Python 환경 설정하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AI Engineering Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AI Engineering Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Python 환경 설정하기
- 채팅 완성 엔드포인트
- 매개변수로 모델 동작 제어하기
- 오류 처리와 요청 한도