> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 '비패키지에서 상대 가져오기 시도' 오류를 수정하는 방법은 무엇입니까?

Python에서 '비패키지에서 상대 가져오기 시도' 오류를 수정하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-18 14:08:11
원래의
812명이 탐색했습니다.

How to Fix

__init__.py의 "비패키지에서 상대 가져오기 시도" 오류 해결

상대 경로가 있는 모듈을 가져오면 Python 패키지 구조로 작업할 때 문제가 발생할 수 있습니다. 그러한 문제 중 하나는 __init__.py 파일이 있음에도 불구하고 패키지 디렉토리 전체에서 모듈을 가져오려고 시도하는 동안 발생하는 "비패키지에서 상대 가져오기 시도" 오류입니다.

근본 원인을 이해하려면 Python의 가져오기 메커니즘이 작동하는 방식. 가져오기는 일반적으로 현재 파일의 이름을 기준으로 실행됩니다. 그러나 파일을 직접 실행할 때는 일반적인 이름 대신 "__main__" 이름을 가정합니다. 이러한 특징은 상대 가져오기를 방해하여 앞서 언급한 오류를 발생시킵니다.

코드를 직접 실행하는 대신 -m 옵션을 사용하는 것이 좋습니다. 이 옵션을 사용하면 모듈을 스크립트로 처리하고 적절한 이름을 할당할 수 있습니다. 예를 들어 이 방법을 사용하여 core_test.py를 실행하려면 다음 명령을 입력합니다.

python -m pkg.tests.core_test
로그인 후 복사

또는 package 속성을 ​​활용하여 모듈 자체 내에서 패키지 이름을 지정할 수 있습니다. 이 기술은 파일이 스크립트로 직접 실행되는 경우에도 상대 가져오기가 올바르게 작동하도록 보장합니다. 이 접근 방식에 대한 자세한 내용은 Python Enhancement Proposal 366(PEP-366)을 참조하세요.

위 내용은 Python에서 '비패키지에서 상대 가져오기 시도' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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