문제 정의:
Python 파일에서 상대 가져오기를 시도할 때 최상위 스크립트로 실행되면(예: python myfile.py 입력) 오류 메시지는 다음과 같습니다. 발생: "비패키지에서 상대 가져오기를 시도했습니다."
모듈과 스크립트 이해:
가장 중요한 차이점은 Python이 로드될 때 파일을 해석하는 방법에 있습니다. 스크립트로 직접 실행하면 파일 이름은 "__main__"이 됩니다. 다른 파일에서 모듈로 가져오는 경우 해당 이름은 해당 패키지 구조(예: "package.subpackage.module")를 반영합니다.
상대 가져오기 제한:
상대 가져오기는 모듈의 전체 이름에 의존하여 패키지 계층 구조 내에서의 위치를 결정합니다. 모듈 이름에 패키지 정보(예: "__main__")가 포함되어 있지 않으면 모듈이 패키지의 일부로 간주되지 않기 때문에 상대 가져오기가 실패합니다.
오류 설명:
모듈의 전체 이름에 점이 부족하여 패키지 연결이 없음을 나타내는 경우 Python은 이를 독립 실행형 스크립트로 해석합니다. 상대적 수입이 무효화됩니다. 이 오류는 다음과 같은 경우에 발생합니다.
솔루션:
추가 참고 사항:
위 내용은 Python 스크립트를 직접 실행할 때 상대 가져오기가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!