Skip to content

Instantly share code, notes, and snippets.

@parkjoohwan
Created February 3, 2020 08:06
Show Gist options
  • Select an option

  • Save parkjoohwan/267aa98372be8436e7ebc0aa8854dfd6 to your computer and use it in GitHub Desktop.

Select an option

Save parkjoohwan/267aa98372be8436e7ebc0aa8854dfd6 to your computer and use it in GitHub Desktop.
django module import 관련 요약

가장 기본적인 파이썬 프로젝트의 구조는 아래와 같습니다. (django 프로젝트 제외)

project
    -- test
        +-- sub1
            -- __init__.py
            -- a.py
            -- b.py
       +-- sub2
            -- __init__.py
            -- c.py
            -- d.py
       -- __init__.py
       -- f.py
   -- g.py
  • 최상위 파일에서 다른 파일 참조할 때
  1. e.py 에서 다른 모듈 참조
# /project/test/e.py

# a.py를 참조할 경우
from sub1 import a
# f.py를 참조할 경우
import ff
# 혹은 아래와 같이 
from . import ff
  • 하위 폴더의 파일 내에서 다른 모듈을 참조하는 방법
  1. 부모 폴더의 절대경로를 참조한 뒤 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
  1. 시스템 환경변수 pythonpath에 프로젝트 추가 -- 비추천

그리고 현재 진행중인 프로젝트는 config.py 파일에 변수를 선언하고 이를 참조하는 방식으로 전역변수, 환경변수를 사용하고 있는데요.

찾아보니 config 설정을 도와주는 기본 모듈을 지원하고 있어서 이를 적용해봐야할 것 같습니다.

나중에 django 프로젝트 구조에 대해서도 정리하겠습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment