Programing

내장 모듈과 이름이 같은 모듈을 가져 오려고하면 가져 오기 오류가 발생합니다.

lottogame 2020. 11. 12. 07:39
반응형

내장 모듈과 이름이 같은 모듈을 가져 오려고하면 가져 오기 오류가 발생합니다.


기본 제공 모듈과 충돌하는 모듈이 있습니다. 예를 들어, myapp.email모듈로 정의 myapp/email.py.

myapp.email문제없이 내 코드의 어디에서나 참조 할 수 있습니다 . 하지만 내 이메일 모듈에서 내장 이메일 모듈을 참조해야합니다.

# myapp/email.py
from email import message_from_string

그것은 단지 자신을 발견하고, 따라서를 제기 ImportError하기 때문에, myapp.email이없는 message_from_string방법을. import email시도 할 때 동일한 문제가 발생합니다 email.message_from_string.

파이썬에서이 작업을 수행 할 수있는 기본 지원이 있습니까? 아니면 "이메일"모듈의 이름을 좀 더 구체적인 것으로 바꾸는 데 어려움을 겪고 있습니까?


이 문제를 해결하는 Absolute 및 Relative Imports 에 대해 읽고 싶을 것 입니다. 사용하다:

from __future__ import absolute_import

이를 사용하면 장식되지 않은 패키지 이름은 항상 최상위 패키지를 참조합니다. 그런 다음 상대 가져 오기 ( from .email import ...)를 사용하여 자체 패키지에 액세스해야합니다.

참고 : 위의 from ...줄 필요는 파이썬이 어떤 2.X에 투입되는 .py위의 파일 import ...사용중인 라인. Python 3.x에서는 이것이 기본 동작이므로 더 이상 필요하지 않습니다.

참고 URL : https://stackoverflow.com/questions/1224741/trying-to-import-module-with-the-same-name-as-a-built-in-module-causes-an-import

반응형