728x90 sys.path4 [PYTHON] 모듈 경로(sys.path)가 꼬였을 때 해결하는 3가지 방법과 환경 차이 분석 파이썬 개발을 하다 보면 분명히 존재하는 파일임에도 불구하고 ModuleNotFoundError 또는 ImportError를 마주하게 되는 순간이 있습니다. 이는 대부분 파이썬 인터프리터가 모듈을 탐색하는 리스트인 sys.path가 실제 프로젝트 구조와 일치하지 않아 발생하는 문제입니다. 특히 패키지 구조가 깊어지거나 여러 프로젝트를 동시에 진행할 때 발생하는 이 '경로 꼬임' 현상을 시니어 개발자의 관점에서 완벽하게 해결하는 전략을 제시합니다.1. sys.path의 메커니즘과 경로 꼬임의 원인파이썬은 import 구문을 실행할 때 특정 순서에 따라 모듈을 찾습니다. 이 순서가 담긴 리스트가 바로 sys.path입니다. 경로가 꼬이는 주요 원인은 다음과 같습니다.작업 디렉토리(CWD)의 혼선: 스크립트를.. 2026. 4. 7. [PYTHON] 파이썬 가상 환경 venv 구조와 site-packages 로딩 메커니즘 해결 방법 3가지 파이썬 개발자라면 python -m venv venv 명령어를 수없이 입력해 보았을 것입니다. 하지만 정작 이 명령어가 시스템 내부에서 어떤 물리적 구조를 생성하고, 파이썬 인터프리터가 어떻게 수많은 라이브러리 중에서 특정 프로젝트의 site-packages를 우선적으로 찾아내는지 그 내부 메커니즘을 정확히 이해하는 경우는 드뭅니다. 오늘은 가상 환경의 내부 구조를 파헤치고, 라이브러리 충돌 문제를 근본적으로 해결하는 로딩 원리를 심층 분석합니다.1. venv 가상 환경의 물리적 내부 구조가상 환경을 생성하면 프로젝트 폴더 내에 독립적인 디렉토리 구조가 만들어집니다. 핵심은 시스템 파이썬 전체를 복사하는 것이 아니라, 심볼릭 링크(Symbolic Link)와 핵심 설정 파일을 통해 '독립된 것처럼' 동작.. 2026. 4. 3. [PYTHON] 상대 경로 임포트 ImportError 해결을 위한 3가지 방법과 절대 경로 차이 분석 파이썬 개발을 하다 보면 프로젝트 구조가 깊어짐에 따라 from . import module 또는 from ..sub import func와 같은 상대 경로 임포트(Relative Import)를 사용하게 됩니다. 하지만 실행 시 마주하게 되는 ImportError: attempted relative import with no known parent package라는 에러 메시지는 많은 개발자를 당혹스럽게 만듭니다. 본 포스팅에서는 2026년 최신 파이썬 실행 환경을 기준으로 이 문제가 발생하는 근본적인 원인을 진단하고, 실무에서 바로 적용 가능한 3가지 해결 방법을 상세히 제시합니다.1. ImportError: 왜 발생하는가? 근본 원인 분석파이썬의 상대 경로 임포트는 현재 모듈의 __name__ 속성.. 2026. 3. 19. [PYTHON] Virtualenv의 3가지 동작 원리와 시스템 파이썬 격리 문제 해결 방법 파이썬 개발 환경에서 가장 기초적이면서도 중요한 개념은 바로 가상환경(Virtual Environment)입니다. "내 컴퓨터에서는 잘 돌아가는데 왜 서버에서는 오류가 날까?" 혹은 "패키지를 하나 업데이트했더니 다른 프로젝트가 망가졌어"와 같은 상황은 모두 시스템 파이썬(System Python)과 프로젝트 간의 격리가 이루어지지 않았기 때문입니다. 2026년 현대적 소프트웨어 아키텍처 관점에서 Virtualenv가 내부적으로 어떻게 시스템과 분리된 독립된 성을 쌓는지, 그 딥다이브(Deep-dive) 메커니즘을 파헤쳐 봅니다.1. 왜 가상환경 격리가 필요한가?시스템 파이썬은 OS의 핵심 기능(업데이터, 시스템 툴 등)을 수행하기 위해 존재합니다. 여기에 개발용 라이브러리를 무분별하게 설치하는 것은 마.. 2026. 3. 19. 이전 1 다음 728x90