상대 경로가 있는 모듈을 가져오면 Python 패키지 구조로 작업할 때 문제가 발생할 수 있습니다. 그러한 문제 중 하나는 __init__.py 파일이 있음에도 불구하고 패키지 디렉토리 전체에서 모듈을 가져오려고 시도하는 동안 발생하는 "비패키지에서 상대 가져오기 시도" 오류입니다.
근본 원인을 이해하려면 Python의 가져오기 메커니즘이 작동하는 방식. 가져오기는 일반적으로 현재 파일의 이름을 기준으로 실행됩니다. 그러나 파일을 직접 실행할 때는 일반적인 이름 대신 "__main__" 이름을 가정합니다. 이러한 특징은 상대 가져오기를 방해하여 앞서 언급한 오류를 발생시킵니다.
코드를 직접 실행하는 대신 -m 옵션을 사용하는 것이 좋습니다. 이 옵션을 사용하면 모듈을 스크립트로 처리하고 적절한 이름을 할당할 수 있습니다. 예를 들어 이 방법을 사용하여 core_test.py를 실행하려면 다음 명령을 입력합니다.
python -m pkg.tests.core_test
또는 package 속성을 활용하여 모듈 자체 내에서 패키지 이름을 지정할 수 있습니다. 이 기술은 파일이 스크립트로 직접 실행되는 경우에도 상대 가져오기가 올바르게 작동하도록 보장합니다. 이 접근 방식에 대한 자세한 내용은 Python Enhancement Proposal 366(PEP-366)을 참조하세요.
위 내용은 Python에서 '비패키지에서 상대 가져오기 시도' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!