자신이 작성한 여러 경로의 python 파일을 호출하려고 할때 생기는 문제점 해결 방법

(Python Error) ImportError: attempted relative import with no known parent package 발생 이유


//-------------------------------------
    - 개념
모듈(Module) : 다른 파일에서 import해서 사용하는 Python 파일
패키지(Package) : 모듈을 가진 폴더

    - 규칙
import는 같은 패키지나 하위 패키지(폴더)에서 가능, 
상위 패키지(폴더)의 모듈을 import 불가

상위 폴더에 위치한 모듈을 호출하려고 할때 에러 발생
파이썬 에러 메시지 - ImportError: attempted relative import with no known parent package


//-----------------------------------------------------------------------------
< 모듈 import 방법 >

# 절대 경로 - 하위폴더 import시 가능
from Utils import util2 as lib

# 하위폴더 import
import Utils.util2 as lib

# 상대 경로 - 안됨, 상위폴더 import불가
from ..Utils import util2  
    - 에러 발생 - ImportError: attempted relative import with no known parent package

//-------------------------------------

    - 사용자 패키지 경로 지정 방법 1
# 함수 이용 시스템 경로 추가
sys.path.append("D:\\Python\\Utils")
# import 모듈파일
import util2 as lib

 

 

//-------------------------------------

    - 사용자 패키지 경로 지정 방법 2
환경변수 PYTHONPATH 설정 방법 - 외부에서 환경변수 설정해야 됨
# os.environ["PYTHONPATH"] += "D:\\Python\\Utils" # 내부설정은 작동 안함
# import 모듈파일
import util2 as lib



//-------------------------------------
< 참고 >
https://stackoverflow.com/questions/16981921/relative-imports-in-python-3


반응형
Posted by codens


반응형