>백엔드 개발 >파이썬 튜토리얼 >`__import__`가 Matplotlib 하위 모듈을 완전히 가져오지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

`__import__`가 Matplotlib 하위 모듈을 완전히 가져오지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-08 06:58:11876검색

Why Does `__import__` Fail to Fully Import Matplotlib Submodules, and How Can I Fix It?

"__import__"를 사용하여 문자열 변수에서 모듈 가져오기

matplotlib(MPL) 라이브러리 내의 특정 하위 모듈을 문서화하려고 하면 다음과 같은 문제가 발생할 수 있습니다. 문자열에서 이러한 하위 모듈을 가져오는 데 필요합니다. 그러나 "__import__" 함수를 사용하면 표준 가져오기 문에 비해 예상치 못한 결과가 발생할 수 있습니다.

문제:

"__import__"를 사용하여 하위 모듈 가져오기(예: __import__( 'matplotlib.text'))가 예상대로 하위 모듈의 내용을 완전히 로드하지 않습니다. "__import__"와 일반 가져오기에서 얻은 속성 목록을 비교해 보면 "__import__"에는 외부 요소와 함께 matplotlib의 기본 정의가 포함되어 있지만 대상 하위 모듈의 중요한 클래스가 부족하다는 것이 분명합니다.

해결책:

"__import__"를 사용하여 문자열에서 하위 모듈을 로드하려면 빈 값을 지정하세요. list를 두 번째 인수로 사용(fromlist):

import matplotlib.text as text
x = dir(text)

i = __import__('matplotlib.text', fromlist='')
y = dir(i)

이 수정된 코드는 원하는 하위 모듈을 효과적으로 로드하여 예상되는 속성 목록을 생성합니다.

또는 Python 버전 3.1 이상에서 하나 importlib를 활용할 수 있습니다 모듈:

import importlib

i = importlib.import_module("matplotlib.text")
y = dir(i)

참고:

  • 하위 폴더(예: ./feature/email.py)와 관련된 가져오기의 경우 importlib.import_module을 사용하세요. ("feature.email").
  • 이전 Python 버전에서는 3.3에서는 가져온 파일의 폴더 내에 __init__.py 파일이 필요했습니다. 하지만 3.3 이후에는 이 요구 사항이 제거되었습니다.

위 내용은 `__import__`가 Matplotlib 하위 모듈을 완전히 가져오지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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