AI, 클라우드, 문서, 자동화/AI_AGENT

I. Python 실행 환경이 제대로 갖춰져 있는지 확인하는 간단한 점검 프로그램

아톨 2026. 8. 22. 15:37
반응형

    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 개발환경 준비
 

라는 개발환경의 구조를 이해하는 것입니다.

반응형