본문 바로가기
Python/Python FAQ

Python 파이썬 애플리케이션을 위한 최상의 프로젝트 구조는 무엇인가요? [닫힘], What is the best project structure for a Python application? [closed]

by 베타코드 2023. 6. 9.
반응형

질문


파이썬으로 비단순한 엔드 유저 데스크탑 (웹이 아님) 애플리케이션을 개발하려는 경우, 프로젝트의 폴더 계층 구조를 구성하는 최상의 방법은 무엇인가요?

유지 보수의 용이성, IDE 친화성, 소스 컨트롤 브랜치/병합에 적합성 및 쉬운 설치 패키지 생성이 필요한 기능입니다.

특히 다음과 같습니다:

  1. 소스를 어디에 넣나요?
  2. 애플리케이션 시작 스크립트를 어디에 넣나요?
  3. IDE 프로젝트 부산물을 어디에 넣나요?
  4. 단위/인수 테스트를 어디에 넣나요?
  5. 구성 파일과 같은 비-Python 데이터를 어디에 넣나요?
  6. pyd/so 바이너리 확장 모듈을 위한 비-Python 소스를 어디에 넣나요?

답변


너무 중요하지 않습니다. 행복하게 하는 것이 작동합니다. Python 프로젝트는 간단할 수 있으므로 많은 어리석은 규칙이 없습니다.

  • /scripts 또는 /bin과 같은 명령 줄 인터페이스 관련 항목
  • 테스트용 /tests
  • C 언어 라이브러리용 /lib
  • 대부분의 문서에 대한 /doc
  • Epydoc에서 생성된 API 문서에 대한 /apidoc

그리고 최상위 디렉토리에는 README, Config 등이 포함될 수 있습니다.

어려운 선택은 /src 트리를 사용할 것인지 여부입니다. Python은 Java나 C와 같은 /src, /lib, /bin의 구분을 가지고 있지 않습니다.

최상위 /src 디렉토리는 의미 없는 것으로 여겨지기도 하므로 최상위 디렉토리는 애플리케이션의 최상위 아키텍처가 될 수 있습니다.

  • /foo
  • /bar
  • /baz

제품 이름 디렉토리 아래에 모두 넣는 것이 좋습니다. 따라서, 애플리케이션 이름이 quux인 경우, 이 모든 것을 포함하는 디렉토리는 /quux로 이름이 지정됩니다.

다른 프로젝트의 PYTHONPATH/path/to/quux/foo를 포함하여 QUUX.foo 모듈을 재사용할 수 있습니다.

제 경우, Komodo Edit을 사용하기 때문에, 제 IDE cuft는 단일 .KPF 파일입니다. 실제로 그것은 최상위 /quux 디렉토리에 있으며 SVN에 추가하지 않습니다.

반응형

댓글