Python의 상대 가져오기
"비 패키지에서 상대 가져오기 시도" 오류를 방지하려면 Python의 상대 가져오기를 이해하는 것이 중요합니다.
스크립트 대 스크립트 모듈
Python 파일의 로딩 방법에서 중요한 차이점이 발생합니다. 스크립트로 직접 실행하면 이름이 __main__으로 설정됩니다. 반대로 가져온 경우 이름에는 패키지 정보가 포함됩니다.
명명 규칙
예를 들어 package/subpackage1/moduleX.py의 moduleX를 가져오면 해당 이름 package.subpackage1.moduleX가 됩니다. 그러나 직접 실행하면 이름은 __main__입니다.
상대 가져오기
상대 가져오기는 모듈 이름을 사용하여 패키지 계층 구조를 결정합니다. 점이 포함되지 않은 이름을 가진 모듈은 패키지의 일부로 표시되지 않습니다.
오류 원인
이름이 ''임을 나타내는 모듈에서 상대 가져오기를 시도할 때 오류가 발생합니다. 패키지에 포함되어 있지 않습니다(즉, 이름에 점이 없습니다). 여기에는 스크립트(main에 점이 없기 때문에)와 현재 디렉터리(Python이 검색 경로에 현재 디렉터리를 추가하는 위치)에서 직접 로드된 모듈이 포함됩니다.
솔루션
참고
위 내용은 Python에서 '비패키지에서 상대 가져오기 시도' 오류를 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!