python import 경로(system path) 확인하기
서론Permalink
python 사용 시 module import가 제대로 되지 않는 경우가 있습니다. 이 경우 보통 python이 import 할 때 사용하는 system path를 정확히 고려하지 않은 경우입니다. 따라서 아래와 같이 system path를 확인하고 module path를 추가해주면 module import가 제대로 됩니다. 제 프로젝트 파일을 예로 설명하겠습니다.
system path 추가Permalink
아래는 제가 지금 공부하고 있는 프로젝트 파일 구조입니다.
DLFS
│
├─1_HELLOPYTHON
│ └─ ex_matplotlib.py
│
├─2_NEURALNETWORK
│ └─ MNIST_ex.py
│
├─data
│ └─ lenna.png
│
├─dataset
│ └─ mnist.py
│
└─lib
└─ activation_function.py
이 경우 2_NEURALNETWORK 폴더 안에서 MNIST_ex.py를 편집하면서 lib 폴더의 activation_function.py를 import 하고 싶어서 아래 코드를 적어도 module이 import 되지 않습니다.
import activation_function
ModuleNotFoundError: No module named 'activation_function'
이유는 파이썬 코드가 실행될 때 module을 import 하는 경로인 system path가 아래와 같이 설정되기 때문입니다.
- .py 파일이 속한 폴더의 경로
- 환경변수인 PYTHONPATH내의 경로
- 기타 기본 경로
따라서 현재 import 하려는 module이 있는 lib는 system path 안에 없어서 아래와 같이 코드를 수정하여 system path에 module이 있는 폴더인 lib를 추가해 주어야 합니다.
import sys, os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))+'/lib')
import activation_function
간단하게 lib의 절대 경로를 하드코딩 해도 실행은 되겠지만 os를 사용하여 적은 이유는 코드가 어느 환경에 가서도 실행되기 위함입니다.
보통 프로젝트가 이런 구조를 가지진 않을 것 같습니다. 학업용이기 때문에 챕터를 분리해서 폴더를 넘나드는 구조를 가지게 되었지만, 보통은 메인 파일과 같은 폴더 안에 lib를 같이 두는 게 좋을 것 같습니다.
python내 다른 글 보기
댓글남기기