>백엔드 개발 >파이썬 튜토리얼 >`sys.path` 해킹을 사용하지 않고 형제 패키지에서 가져오는 방법은 무엇입니까?

`sys.path` 해킹을 사용하지 않고 형제 패키지에서 가져오는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-08 15:56:13263검색

How to Import from Sibling Packages Without Using `sys.path` Hacks?

동위 패키지 가져오기: sys.path 해킹을 방지하는 솔루션

동위 패키지에서 가져오기는 코드베이스를 구성할 때 문제가 될 수 있습니다. sys.path.append 핵이 해결 방법을 제공하는 반면, 이러한 방해적인 삽입이 필요 없는 더 우아한 솔루션이 있습니다.

단계:

  1. pyproject.toml 만들기 파일:
    pyproject.toml에서 패키지 메타데이터 및 종속성을 정의합니다. 파일.
  2. 가상 환경 사용:
    가상 환경을 생성하여 프로젝트를 시스템 종속성으로부터 격리합니다.
  3. 편집 가능한 상태로 프로젝트 설치:
    pip 및 -e 플래그를 사용하여 편집 가능한 상태로 패키지를 설치하면 변경 사항이 자동으로 적용됩니다. 반영됩니다.
  4. 가져오기 수정:
    myproject 앞에 추가하세요. 이전에 실패한 가져오기(예: from myproject.api import function_name).

예:

다음 파일을 고려하세요. 구조:

  • api/api.py
  • examples/example_one.py
  • 테스트/테스트 _one.py
  • pyproject.toml

api.py:

test_one.py:

받는 사람 test_one.py를 실행하고 myproject가 편집 가능한 상태로 설치되었는지 확인하세요. 그런 다음 실행:

"I am the return value from api.api!"라는 출력이 표시되어야 합니다.

결론:

이 방법을 사용하면 sys.path.append와 같은 해키 솔루션을 사용하지 않고 형제 패키지에서 가져옵니다. pyproject.toml과 편집 가능한 설치를 활용하면 깔끔한 모듈식 코드베이스를 유지하면서 쉽게 확장하고 테스트할 수 있습니다.

위 내용은 `sys.path` 해킹을 사용하지 않고 형제 패키지에서 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.