728x90
728x90
다른 디랙터리에 있는 모듈을 import 할 때 유용하게 사용 가능합니다.
예)
폴더 구조:
|---- proj
| |----a
| | |----a.py
| |----b
| | |----b.py
# proj/a/a.py
from b import b
b.print_b()
# proj/b/b.py
def print_b():
print('running b.py')
proj/a에서 a.py를 실행할 때 proj/b/b.py를 import하고 싶다고 합시다.
proj/a$ python a.py # proj/a에서 a.py 실행
Traceback (most recent call last):
File "/proj/a/a.py", line 1, in <module>
from b import b
ModuleNotFoundError: No module named 'b'
단순히 a.py 를 실행하면 b라는 모듈을 찾을 수 없습니다. b 라는 모듈은 /proj/b에 있고, a.py를 실행할 때에는 proj/a/ 에서 실행했기 때문에 /proj/a/ 안에 b/가 있는지 찾기 때문입니다 (기본적인 python 이 찾는 경로에 추가로).
한가지 해결방법은 다음과 같습니다:
PYTHONPATH=/proj/ python a.py
PYTHONPATH에 /proj/를 추가했기 때문에 이제 /proj/에서도 b/를 찾게 됩니다.
728x90
728x90
'코딩 > python' 카테고리의 다른 글
[파이썬] flake8 & pre-commit 사용법 (+ VS Code) (0) | 2023.07.28 |
---|