| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 상속
- 11382번
- 포인터
- OOP
- 참조자
- 백준
- c++코딩테스트합격자되기
- 프로그래머스lv2
- 스택
- 멤버함수로구현
- 유도클래스
- 다형성
- OpenCV
- 데이터사이언스
- list comprehension
- 주피터
- 기본클래스
- C++
- 점프투파이썬
- 동적바인딩
- 제네릭프로그래밍
- 깊은복사
- STL
- 코드잇
- 연산자오버로딩
- 람다식
- 코딩테스트
- 얕은복사
- 인프런
- python
- Today
- Total
WjExplor Story
PYTHONPATH 환경 변수 본문
## 1. PYTHONPATH란 무엇인가요?
`PYTHONPATH`는 파이썬 인터프리터가 모듈을 찾을 때 사용하는 추가적인 검색 경로들의 목록을 지정하는 환경 변수입니다.
파이썬에서 `import my_module`과 같은 코드를 실행하면, 인터프리터는 정해진 순서에 따라 여러 위치에서 `my_module.py` 파일을 찾습니다. 그 순서는 다음과 같습니다.
- **현재 작업 디렉토리**: 스크립트를 실행하는 바로 그 폴더.
- **`PYTHONPATH` 환경 변수에 지정된 디렉토리들**: 이 환경 변수에 지정된 모든 폴더.
- **파이썬 설치 시 기본으로 포함된 표준 라이브러리 디렉토리**.
`PYTHONPATH`를 사용하면, 완전히 다른 위치에 있는 나만의 파이썬 모듈이나 패키지를 파이썬이 찾을 수 있도록 만들 수 있습니다.
## 2. 왜 사용하나요?
* **공통 모듈 관리**: 여러 프로젝트에서 공통으로 사용하는 모듈들을 한 곳에 모아두고, `PYTHONPATH`에 그 디렉토리를 추가하여 모든 프로젝트에서 쉽게 `import` 할 수 있습니다.
* **패키지 개발 및 테스트**: 정식으로 설치(`pip install`)하기 전에 개발 중인 패키지를 테스트할 때, 해당 패키지의 소스 코드가 있는 디렉토리를 `PYTHONPATH`에 추가하여 바로 가져와 쓸 수 있습니다.
## 3. 어떻게 사용하나요? (예제)
다음과 같은 폴더 구조를 예로 들어보겠습니다.
```
D:\python\my_common_libs\
└── utils.py
D:\python\Coding\
└── main.py
```
**utils.py:**
```python
# D:\python\my_common_libs\utils.py
def say_hello(name):
print(f"Hello, {name}!")
```
**main.py:**
```python
# D:\python\Coding\main.py
import utils
utils.say_hello("World")
```
이 상태에서 `main.py`를 실행하면 `ModuleNotFoundError`가 발생합니다. 이때 `PYTHONPATH`를 설정하여 `D:\python\my_common_libs` 경로를 파이썬에게 알려줄 수 있습니다.
**Windows (cmd)에서 임시 설정:**
```bash
# 1. PYTHONPATH 환경 변수 설정
set PYTHONPATH=D:\python\my_common_libs
# 2. 파이썬 스크립트 실행
python D:\python\JoCoding\main.py
```
결과적으로 "Hello, World!"가 성공적으로 출력됩니다.
* **여러 경로 추가 (Windows)**: 세미콜론(;)으로 구분합니다.
`set PYTHONPATH=D:\path\one;D:\path\two`
* **여러 경로 추가 (Linux/macOS)**: 콜론(:)으로 구분합니다.
`export PYTHONPATH=/path/one:/path/two`
## 4. 주의사항 및 최신 개발 동향
`PYTHONPATH`는 편리하지만, 의존성 관리가 어렵고 충돌의 위험이 있어 현대적인 파이썬 개발에서는 사용을 최소화하는 추세입니다.
더 권장되는 대안:
- 가상 환경 (Virtual Environments): `venv`를 사용해 프로젝트별로 독립된 환경을 만드세요. `pip`로 필요한 라이브러리를 가상 환경 내에 직접 설치하는 것이 가장 좋습니다. 의존성이 명확해지고 프로젝트 간 충돌이 없습니다.
- 편집 가능 설치 (Editable Installs): 직접 패키지를 개발하는 경우, `pip install -e .` 명령어를 사용하면 소스 코드를 수정하면서 다른 프로젝트에서 바로 테스트할 수 있습니다. `PYTHONPATH`보다 훨씬 강력하고 표준적인 방법입니다.
결론: `PYTHONPATH`는 학습용이나 간단한 스크립트에 유용할 수 있지만, 협업이나 복잡한 프로젝트에서는 **가상 환경과 `pip`를 사용하는 것이 표준 방식**입니다.
'Python > Python : Code Study' 카테고리의 다른 글
| 주민등록번호 가리기 (0) | 2025.09.15 |
|---|---|
| 자릿수 합 구하기 (0) | 2025.09.15 |
| if __name__ == "__main__" 정리 (0) | 2025.09.12 |
| 파스칼 케이스(PascalCase) 표기법 (0) | 2025.09.12 |
| [점프 투 파이썬] 4장 파이썬의 입출력 되새김 문제 Q1 ~ Q8 (1) | 2025.09.12 |