가장 기본적인 파이썬 프로젝트의 구조는 아래와 같습니다. (django 프로젝트 제외)
project
-- test
+-- sub1
-- __init__.py
-- a.py
-- b.py
+-- sub2
-- __init__.py
-- c.py
-- d.py
-- __init__.py
-- f.py
-- g.py
- 최상위 파일에서 다른 파일 참조할 때
- e.py 에서 다른 모듈 참조
# /project/test/e.py
# a.py를 참조할 경우
from sub1 import a
# f.py를 참조할 경우
import ff
# 혹은 아래와 같이
from . import ff
- 하위 폴더의 파일 내에서 다른 모듈을 참조하는 방법
- 부모 폴더의 절대경로를 참조한 뒤 path에 추가하는 방법 -- 추천
# /project/test/sub1/a.py
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))
import c.py
- 만약 a.py 파일에서 g.py를 참조한다고 하면 2단계 상위 폴더 경로를 추가해야함
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))))
import g.py
- 시스템 환경변수 pythonpath에 프로젝트 추가 -- 비추천
그리고 현재 진행중인 프로젝트는 config.py 파일에 변수를 선언하고 이를 참조하는 방식으로 전역변수, 환경변수를 사용하고 있는데요.
찾아보니 config 설정을 도와주는 기본 모듈을 지원하고 있어서 이를 적용해봐야할 것 같습니다.
나중에 django 프로젝트 구조에 대해서도 정리하겠습니다.
-
모듈 관련 참고 사이트1 : https://wikidocs.net/29
-
모듈 관련 참고 사이트2 : https://dojang.io/mod/page/view.php?id=2448
-
config 구성 관련 참고 사이트 : https://docs.python.org/3/library/configparser.html#module-configparser