> 백엔드 개발 > 파이썬 튜토리얼 > Python의 형제 패키지에서 모듈을 쉽게 가져올 수 있나요?

Python의 형제 패키지에서 모듈을 쉽게 가져올 수 있나요?

Susan Sarandon
풀어 주다: 2024-12-19 21:13:19
원래의
351명이 탐색했습니다.

How Can I Easily Import Modules from Sibling Packages in Python?

형제 패키지 가져오기

Python 패키지로 작업할 때 형제 패키지에서 모듈을 가져오는 것이 때때로 어려울 수 있습니다. sys.path 조작과 관련된 기존 방법은 번거롭고 오류가 발생하기 쉽습니다. 보다 간단한 접근 방식을 위해 Python의 최신 패키징 도구를 활용하는 솔루션이 있습니다.

관련 단계

1. pyproject.toml 파일 만들기

프로젝트 디렉터리의 루트에 다음과 같은 최소한의 내용으로 pyproject.toml 파일을 만듭니다.

[project]
name = "myproject"
version = "0.1.0"
description = "My small project"

[build-system]
build-backend = "flit_core.buildapi"
requires = ["flit_core >=3.2,<4"]
로그인 후 복사

2 . 가상 환경 활성화(선택 사항)

필수는 아니지만 가상 환경을 활성화하면 프로젝트별 종속성을 전역 Python 환경에서 격리할 수 있습니다. 가상 환경 생성 및 활성화:

  • 가상 환경 생성:

    python -m venv venv
    로그인 후 복사
  • 가상 환경 활성화:
  • Linux 및 macOS: 소스 ./venv/bin/activate
  • Windows: .venvScripts활성화

3. 편집 가능한 상태로 패키지 설치

프로젝트 디렉토리 루트에서 -e 플래그와 함께 pip를 사용하여 패키지를 설치하여 편집 가능 모드를 활성화합니다.

pip install -e .
로그인 후 복사

< h3>4. 형제 패키지 접두사가 있는 모듈 가져오기

형제 패키지에서 모듈을 가져오려면 가져오기에서 패키지 이름을 접두사로 추가하세요. 예를 들어, 형제 패키지에서 api라는 모듈을 가져오려면 다음을 사용합니다.

from myproject.api import api_module
로그인 후 복사
로그인 후 복사

사용 예

다음 프로젝트 구조를 고려하세요.

- api
  - api.py
- examples
  - example_one.py
- tests
  - test_one.py
로그인 후 복사

제안된 솔루션을 사용하면 example_one.py에서 api 모듈을 가져올 수 있고 test_one.py는 다음과 같습니다:

example_one.py:

from myproject.api import api_module
로그인 후 복사
로그인 후 복사

test_one.py:

from myproject.api import api_module

def test_function():
    print(api_module.function_from_api())

if __name__ == '__main__':
    test_function()
로그인 후 복사

test_one.py를 실행하면 이제 API에서 function_from_api() 함수가 성공적으로 호출됩니다. 모듈입니다.

위 내용은 Python의 형제 패키지에서 모듈을 쉽게 가져올 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿