>백엔드 개발 >파이썬 튜토리얼 >Python 패키지에 포함된 정적 파일에 액세스하는 방법은 무엇입니까?

Python 패키지에 포함된 정적 파일에 액세스하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-01 17:53:10317검색

How to Access Static Files Embedded in Python Packages?

Python 패키지 내에서 정적 파일 검색

문제:

패키지된 파일을 검색하는 방법 표준 파일 경로를 통해 액세스할 수 없다는 점을 고려하여 Python 패키지 내 방법?

패키지 구조:

템플릿이 중첩된 "템플릿" 폴더에 저장되는 패키지 구조를 고려해보세요.

<package>
  |-- <module>
  |-- templates
        |-- temp_file

해결책:

파일을 검색하는 방법에는 여러 가지가 있습니다. 파일:

1. importlib.resources 사용(Python 3.7 ):

from importlib import resources as impresources

resource_package = __name__
resource_path = "templates/temp_file"

try:
    inp_file = impresources.files(resource_package) / resource_path
    with inp_file.open("rb") as f:
        template = f.read()
except AttributeError:
    # Python < 3.9
    template = impresources.read_text(resource_package, resource_path)

2. pkg_resources(setuptools) 사용:

import pkg_resources

resource_package = __name__
resource_path = "/".join(("templates", "temp_file"))

template = pkg_resources.resource_string(resource_package, resource_path)

세부 정보:

  • importlib.resources가 더 효율적이고 직관적이므로 선호되는 방법입니다.
  • setuptools는 런타임 요구 사항에 사용하면 안 됩니다. 더 이상.
  • setup.py 또는 MANIFEST에 정적 파일을 포함하는 것을 잊지 마세요.

위 내용은 Python 패키지에 포함된 정적 파일에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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