파이썬에서 다른 폴더의 클래스 쉽게 임포트하기

파이썬은 직관적이고 강력한 프로그래밍 언어로, 전 세계 개발자들에게 사랑받고 있습니다. 하지만 프로젝트가 커지면 파일이 여러 폴더에 흩어지게 되어, 다른 폴더에 있는 파일이나 클래스를 효율적으로 import하는 방법에 대한 이해가 필요해집니다. 이 글에서는 여러 폴더에 산재한 파일을 보다 체계적이고 효과적으로 관리하는 방안에 대해 알아보겠습니다.

1. 파이썬 모듈과 패키지란?

파이썬에서 모듈은 하나의 .py 파일로, 이 모듈은 다양한 변수, 함수, 클래스 등을 포함할 수 있습니다. 이러한 모듈들의 집합이 ‘패키지’입니다. 즉, 패키지는 폴더 형태로 구성되며 그 안에 다양한 모듈들이 존재할 수 있습니다.

**예시:**

my_project/

    |– my_package/

        |– __init__.py

        |– module1.py

        |– module2.py

위 구조에서 는 패키지, 그리고 module1.py와 module2.py는 각각 모듈로 이해됩니다.

2. 다른 폴더에 있는 클래스 임포트하기

다른 폴더에 있는 클래스를 임포트하기 위해서는 패키지 경로를 인식하게 해야 합니다. 이는 sys.path를 활용하여 해결할 수 있습니다. 함으로써, 파이썬이 해당 폴더를 인식하고 그 안에 있는 모듈을 사용할 수 있게 됩니다.

이렇게 설정하면 MyClass를 손쉽게 사용할 수 있습니다.

3. __init__.py 파일 활용하기

패키지 폴더에 있는 __init__.py 파일은 해당 폴더가 파이썬 패키지임을 알립니다. 이 파일은 빈 파일로 두거나 패키지 초기화 시 필요한 코드가 포함될 수 있습니다. 이를 통해 하위 모듈들을 한 번의 import로 외부에서 사용할 수 있도록 설정할 수 있습니다.

__init__.py 내부에서

이렇게 작성하면 패키지 임포트 시 module1과 module2의 클래스를 쉽게 접근할 수 있습니다.

4. 상대 경로와 절대 경로 이해하기

임포트 시에는 상대 경로와 절대 경로 두 가지 방식을 사용할 수 있습니다.

는 최상위 패키지명을 경로의 시작으로 사용합니다. 이 방법은 코드의 위치를 명확하게 합니다:

는 현재 모듈의 위치를 기준으로 경로를 나타냅니다:

상대 경로는 계층 구조를 이해하는 데 유용하지만, 가독성을 올릴 수 있는 절대 경로를 더 권장합니다.

5. PYTHONPATH 환경 변수 설정하기

PYTHONPATH 환경 변수를 설정하여 파이썬이 모듈을 찾을 수 있도록 도와줄 수 있습니다. 이 방법은 특정 세션이 아닌 전역적으로 경로를 설정하는 데 유리합니다.

이렇게 설정하면 import 과정이 더욱 간편해집니다.

6. package/module 사용 예제

실제로 어떻게 클래스와 모듈을 활용할 수 있는지 예를 들어보겠습니다.

데이터처리 my_package.module1.DataProcessor 데이터를 읽고 가공하는 클래스
시각화 my_package.module2.Visualizer 데이터를 그래프로 표현하는 클래스

위의 구조는 프로젝트를 보다 논리적으로 구성하게 하여, 다양한 기능을 쉽게 활용할 수 있도록 도와줍니다.