파이썬 순환 임포트, 계층 구조

오젼·2024년 5월 4일
0

문제

순환 임포트 문제가 발생했다.

원래 계층 구조는 다음과 같다.

wavnes/
├── capture/
│   ├── __init__.py
│   ├── handler.py
│   ├── mqtt_handler.py
│   └── sniffer.py
├── websocket/
│   ├── __init__.py
│   ├── websocket_handler.py
│   └── websocket_server.py
├── __init__.py
├── __main__.py
└── main.py

원인

고민

결국 계층 구조를 변경하지 않고
import from .mqtt_handler import MQTTHandler 로 해줘도 해결이 되는 문제였다.
그렇담 어떤 계층 구조를 선택해야 할까? 에 대한 고민

* 후보 1
wavnes/
├── capture/
│   ├── __init__.py
│   ├── handler.py
│   ├── mqtt_handler.py
│   └── sniffer.py
├── websocket/
│   ├── __init__.py
│   ├── websocket_handler.py
│   └── websocket_server.py
├── __init__.py
├── __main__.py
└── main.py
* 후보 2
wavnes/
├── capture/
│	├── handlers/
│   │	├── __init__.py
│   │	├── handler.py
│   │	└── mqtt_handler.py
│   ├── __init__.py
│   └── sniffer.py
├── websocket/
│   ├── __init__.py
│   ├── websocket_handler.py
│   ├── websocket_server.py
├── __init__.py
├── __main__.py
└── main.py

어 3번에 handlers 모듈 통합에 대한 얘기가 있었네 못 보고 지나쳐서 또 물어봤다

결론

음................ 결론이 안 난다

결국 후보2로 하기로 했다

❗️나중에 더 고민해보고 파이썬 프로젝트들 계층 구조 시간 내서 살펴보기

0개의 댓글