| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- 오블완
- 엑셀
- #성인동화 #사람들의 심리 #100만원 수표 # 나의 가치 #구겨진 가치 #구겨진 수표
- #자기계발 #자기성장 #자기관리 #긍정적인삶 #마인드셋 #심리학에세이 #삶의태도
- 프랑스) #바티칸 박물관(로마
- #데일카네기 인간관계론 (고전 필독서) #인간관계론 (도서명) #인간관계개선 (가장 핵심적인 목적) #대화의기술 (실질적인 활용법) #인간관계꿀팁 (정보성) #직장생활팁 (실용성) #자기계발서 (카테고리)
- #유럽 미술관 #오랑주리 미술관 #산 마르코 미술관# 로댕 미술관 #브레라 미술관 #샤갈 미술관 #오페라 가르니에 #귀스타브 모로 미술관 #아카데미아 갤러리 #우피치 미술관#바르베리니 궁전 #코톨드 갤러리 #스탕달 신드롬
- 프랑스)#내셔널 갤러리(런던
- import sys
- #다산 정약용 #유배지에서 보낸 편지 #도덕 #용기 #염 #주역 #호연지기 #효제 #근검
- #환단고기 #상고사 #한국고대사 #단군 #역사학 #사료비판 #정서위서논쟁 #역사검증 #고대사연구 #정서위서논쟁 #사료비판 #역사학 #감정이아닌검증 #균형있는시각
- 영국) #프라도 미술관(마드리드
- #선진국 대한민국 #선진국 #대한민국 #아이들 #청소년 #고민 #해결 #심리
- 프랑스) #오랑주리 미술관(파리
- xls
- ppt) 파일 #오피스(워드
- #간단한 메모장 #개인정보처리 #Privacy Policy
- #Netflix #넷플릭스 #자기잠식(Self-Cannibalization) #해법 중심 경영 #Disney Disney+ #Amazon Prime Video # Apple Apple TV+
- 이탈리아) #루브르 박물관(파리
- 파워포인트) #집(zip)파일 #아래한글(HWP) #brute-force(무차별 대입)
- 네덜란드) #샤갈 미술관(니스
- 스페인) #르네상스·바로크 조각 미술관(보르게세
- 티스토리챌린지
- 이탈리아) #오르세 미술관(파리
- # 그리스 신화 # 로마 신화 #카오스 #가이아 #우라노스 #크로노스 #제우스 #헤라 #포세이돈 #하데스 #데메테르 #아테나 #아폴론 # 아르테미스 #헤르메스 #헤파이스토스 #계보 #그리스 로마 신화 영어 어원
- #독점의 저주 #Curse of Monopoly #카카오 #카카오택시 #마이크로소프트 #Internet Explorer(IE) #지갑 #독점 #사랑
- #평판관리 #좋은평가받는법 #관계심리학 #인간관계팁 #신뢰쌓기 #진심의힘
- #스탕달 신드롬 #유럽 미술관 #우피치 미술관(피렌체
- 로마) #반 고흐 미술관(암스테르담
- # 암호(비밀번호) 분실 # 암호(비밀번호) 찾기 #오피스(doc
- Today
- Total
아톨러브
I. Python 실행 환경이 제대로 갖춰져 있는지 확인하는 간단한 점검 프로그램 본문
import sys
import os
print("파이썬 실행환경 체크하기")
print("-"*30)
version = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
print("Python version: " + version)
in_venv = sys.prefix != sys.base_prefix
print("Virtual env active: " + str(in_venv))
print("Interpreter path: " + sys.executable)
print("Working folder: " + os.getcwd())
if sys.version_info < (3,10):
print("RESULT: 파인썬을 3.10 또는 이상으로 업그레이드 하세요.")
elif not in_venv:
print("RESULT: 가상환경을 활성화시키세요.")
else:
print("RESULT: 개발 준비가 되었어요.")
1. 전체 코드가 하는 일
먼저 전체적인 흐름을 보면 이렇습니다.
프로그램 시작
↓
Python 버전 확인
↓
가상환경 사용 여부 확인
↓
현재 사용 중인 Python 실행 파일 확인
↓
현재 작업 폴더 확인
↓
Python 3.10 이상인가?
↓
가상환경이 활성화되어 있는가?
↓
"ready to build"
즉,
"내 컴퓨터의 Python 개발환경이 AI Agent 개발을 시작할 수 있는 상태인가?"
를 검사하는 코드입니다.
2. import sys
import sys
sys는 Python 인터프리터 자체와 관련된 정보를 다루는 모듈입니다.
쉽게 말하면,
"지금 실행되고 있는 Python 자체에 대한 정보를 알려줘."
라고 할 수 있습니다.
이 코드에서는 sys를 이용해서 다음 정보를 가져옵니다.
sys.version_info
sys.prefix
sys.base_prefix
sys.executable
각각 나중에 자세히 보겠습니다.
3. import os
import os
os는 운영체제(OS)와 상호작용하기 위한 모듈입니다.
Windows, Linux, macOS 등의 운영체제와 관련된 정보를 얻거나 파일, 폴더 등을 다룰 때 많이 사용합니다.
여기서는 딱 하나 사용합니다.
os.getcwd()
이것은 현재 작업 폴더(Current Working Directory)를 알려줍니다.
4. 제목 출력
print("AGENT ENVIRONMENT CHECK")
화면에 다음과 같이 출력합니다.
AGENT ENVIRONMENT CHECK
즉,
"지금부터 Agent 개발환경을 검사하겠습니다."
라는 제목입니다.
5. 구분선 출력
print("-"*30)
여기서 아주 중요한 Python 문법이 하나 나옵니다.
"-" * 30
문자열도 * 연산자를 사용하면 반복할 수 있습니다.
예를 들어:
print("-" * 5)
결과:
-----
따라서
print("-" * 30)
은
------------------------------
을 출력합니다.
화면을 보기 좋게 만드는 용도입니다.

6. Python 버전 확인
version = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
이 부분이 조금 중요합니다.
먼저:
sys.version_info
에는 현재 Python의 버전 정보가 들어 있습니다.
예를 들어 Python 3.11.9라면 대략 다음과 같은 정보를 가지고 있습니다.
major = 3
minor = 11
micro = 9
그래서
sys.version_info.major
→ 3
sys.version_info.minor
→ 11
sys.version_info.micro
→ 9
입니다.
f "..."는 무엇인가?
f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
이것은 f-string입니다.
변수의 값을 문자열 안에 넣는 문법입니다.
예를 들어:
name = "철수"
print(f"안녕하세요 {name}님")
결과:
안녕하세요 철수님
여기서는
f"{3}.{11}.{9}"
와 같은 효과가 되어
3.11.9
라는 문자열을 만듭니다.
그래서
version = ...
이후에는
version
에 "3.11.9"가 들어갑니다.
7. Python 버전 출력
print("Python version: " + version)
예를 들어 Python 3.11.9라면:
Python version: 3.11.9
가 출력됩니다.
여기서
"Python version: " + version
은 문자열을 합치는 것입니다.
즉,
"Python version: " + "3.11.9"
→
"Python version: 3.11.9"
입니다.
8. 가상환경 사용 여부 확인
이 부분이 AI Agent 개발에서 상당히 중요합니다.
in_venv = sys.prefix != sys.base_prefix
처음 보면 상당히 이상해 보입니다.
"왜 prefix와 base_prefix를 비교하지?"
라고 생각하시면 됩니다.
핵심은 이것입니다.
sys.base_prefix
원래 설치되어 있는 Python의 위치를 나타냅니다.
sys.prefix
현재 실행되고 있는 Python 환경의 위치를 나타냅니다.
일반적인 Python 환경에서는 둘이 같습니다.
sys.prefix
↓
C:\Python311
sys.base_prefix
↓
C:\Python311
따라서
sys.prefix != sys.base_prefix
→ False
입니다.
그런데 가상환경을 만들면 달라집니다.
예를 들어:
원래 Python
C:\Python311
↑
│
가상환경
myproject\.venv
가상환경에서 Python을 실행하면:
sys.base_prefix
↓
C:\Python311
sys.prefix
↓
C:\myproject\.venv
서로 달라집니다.
따라서
sys.prefix != sys.base_prefix
→ True
가 됩니다.
그래서:
in_venv = sys.prefix != sys.base_prefix
는 사실상
"현재 Python이 가상환경에서 실행되고 있는가?"
를 확인하는 코드입니다.
9. 가상환경 활성화 여부 출력
print("Virtual env active: " + str(in_venv))
in_venv에는 True 또는 False가 들어갑니다.
예를 들어 가상환경이 활성화되어 있다면:
in_venv = True
그런데 여기서 주의할 것이 있습니다.
"Virtual env active: " + in_venv
라고 하면 오류가 발생합니다.
왜냐하면
"문자열" + True
는 Python에서 허용되지 않기 때문입니다.
그래서:
str(in_venv)
를 사용해서
True
를 문자열
"True"
로 바꿉니다.
결과:
Virtual env active: True
10. 현재 사용 중인 Python의 위치
print("Interpreter path: " + sys.executable)
여기서:
sys.executable
은 현재 실제로 실행되고 있는 Python 프로그램의 경로입니다.
예를 들어:
C:\Users\kim\AI\.venv\Scripts\python.exe
처럼 나옵니다.
이것은 AI 개발에서 굉장히 유용합니다.
왜냐하면 VS Code에서 여러 Python이 설치되어 있으면,
"내가 지금 어느 Python을 사용하고 있지?"
라는 문제가 자주 발생하기 때문입니다.
예를 들어:
Python 3.11
Python 3.12
Anaconda Python
프로젝트 .venv Python
등이 동시에 존재할 수 있습니다.
sys.executable을 출력하면 현재 실행 중인 Python이 정확히 무엇인지 알 수 있습니다.
11. 현재 작업 폴더 확인
print("Working folder: " + os.getcwd())
여기서:
os.getcwd()
는
Current Working Directory
즉 현재 작업 디렉터리를 의미합니다.
예를 들어 터미널에서:
C:\AI\agent
에서 프로그램을 실행했다면:
Working folder: C:\AI\agent
가 나옵니다.
이것 역시 Agent 개발에서 중요합니다.
예를 들어 코드에:
DATA_DIR = Path("agent_data")
같은 것이 있었다면 agent_data가 어느 위치에 만들어지는지는 현재 작업 폴더에 따라 달라집니다.
12. Python 버전 검사
if sys.version_info < (3,10):
이것은
"현재 Python 버전이 3.10보다 낮은가?"
를 검사합니다.
Python의 버전 정보는 비교가 가능합니다.
예를 들어:
(3, 9) < (3, 10)
→ True
하지만
(3, 11) < (3, 10)
→ False
입니다.
따라서 현재 Python이 3.9라면:
RESULT: upgrade to Python 3.10 or newer
가 출력됩니다.
13. 왜 3.10인가?
이것은 이 프로그램이 사용하는 AI/Agent 관련 코드나 라이브러리가 Python 3.10 이상을 전제로 하기 때문입니다.
특히 최근 우리가 공부하고 있는 AI Agent 코드에서는 Python 버전이 상당히 중요합니다.
AI 분야에서는 다음과 같은 것들이 서로 얽혀 있습니다.
Python
↓
OpenAI SDK
↓
Agent 코드
↓
Pydantic
↓
LangChain
↓
각종 AI 라이브러리
Python 버전이 너무 낮으면 패키지가 설치되지 않거나 실행 과정에서 문제가 발생할 수 있습니다.
14. elif not in_venv
elif not in_venv:
이것도 아주 중요한 Python 문법입니다.
앞에서:
in_venv = True
또는
in_venv = False
라고 했습니다.
not은 반대라는 뜻입니다.
따라서:
not True
→ False
not False
→ True
입니다.
그러므로:
elif not in_venv:
는
"가상환경이 활성화되어 있지 않다면"
이라는 뜻입니다.
15. 가상환경이 없으면
print("RESULT: activate a virtual environment first")
즉:
RESULT: activate a virtual environment first
를 출력합니다.
왜 굳이 가상환경을 사용하라고 할까요?
AI 개발에서는 프로젝트마다 필요한 패키지 버전이 다를 수 있기 때문입니다.
예를 들어:
프로젝트 A
OpenAI SDK 1.x
Pydantic 2.x
프로젝트 B
다른 버전의 라이브러리
프로젝트 C
LangChain 특정 버전
이것들을 컴퓨터 전체 Python에 마구 설치하면 서로 충돌할 가능성이 높습니다.
그래서 프로젝트마다:
프로젝트
└─ .venv
├─ Python
├─ OpenAI SDK
├─ Pydantic
└─ 기타 패키지
처럼 독립적인 환경을 만들어 사용하는 것입니다.
16. 마지막 else
else:
print("RESULT: ready to build")
여기까지 왔다는 것은 두 가지 조건을 모두 통과했다는 뜻입니다.
조건 1
Python >= 3.10
조건 2
가상환경 활성화
따라서:
RESULT: ready to build
즉,
"좋아. 이제 AI Agent 개발을 시작해도 된다."
라는 의미입니다.
17. 전체 코드를 논리적으로 다시 보면
이 코드는 사실 다음과 같은 의사코드입니다.
Python 환경을 검사한다.
① Python 버전 확인
② 가상환경 사용 여부 확인
③ 현재 Python 위치 확인
④ 현재 작업 폴더 확인
만약 Python이 3.10보다 낮으면
→ Python을 업그레이드하라고 한다.
그렇지 않고 가상환경이 없으면
→ 가상환경을 활성화하라고 한다.
그렇지 않으면
→ 개발 준비 완료라고 한다.
18. 실제 실행 결과 예시
정상적인 환경이라면 대략 이렇게 나옵니다.
AGENT ENVIRONMENT CHECK
------------------------------
Python version: 3.11.9
Virtual env active: True
Interpreter path: C:\AI\agent\.venv\Scripts\python.exe
Working folder: C:\AI\agent
RESULT: ready to build
이 결과를 보면 우리는 한눈에 알 수 있습니다.
| Python version | 어떤 Python 버전인가 |
| Virtual env active | 가상환경을 사용하고 있는가 |
| Interpreter path | 실제 어떤 Python으로 실행하는가 |
| Working folder | 현재 어느 폴더에서 실행하는가 |
| RESULT | 개발환경이 준비되었는가 |
19. 이 코드에서 꼭 기억할 6가지
이번 코드를 공부하면서는 아래 6개만 확실히 기억하셔도 좋습니다.
① sys
Python 자체에 대한 정보를 확인하는 모듈
import sys
② os
운영체제와 상호작용하는 모듈
import os
③ sys.version_info
Python 버전 정보
sys.version_info.major
sys.version_info.minor
sys.version_info.micro
④ sys.executable
지금 실제 실행하고 있는 Python의 위치
sys.executable
⑤ os.getcwd()
현재 작업 폴더
os.getcwd()
⑥ sys.prefix != sys.base_prefix
현재 Python이 가상환경인지 확인하는 방법
in_venv = sys.prefix != sys.base_prefix
그리고 이 코드에서 가장 중요한 관점
지금부터 Python AI/Agent 공부를 정리하실 때는 단순히 문법을 외우기보다는,
"이 코드는 컴퓨터에서 무엇을 확인하고, 왜 필요한가?"
라는 관점으로 보시면 좋습니다.
이 코드의 핵심은 Python 문법 자체보다도:
Python 버전
↓
가상환경
↓
Python 인터프리터
↓
작업 디렉터리
↓
AI 개발환경 준비
라는 개발환경의 구조를 이해하는 것입니다.
