본문 바로가기
파이썬

파이썬 Python-동일한 패키지 내부에있는 모듈에서 패키지 가져 오기

by º기록 2021. 2. 16.
반응형

다음과 같은 프로젝트 구조가 있습니다.

/some_app
    build/
    README
    out.py
    some_app/
        __init__.py
        mod1.py
        mod2.py

이제 sys.path 속임수를 사용하지 않고 some_app 패키지를 mod2 로 가져오고 싶습니다. 내가 간단히 한 것은 ...

# mod2.py
import some_app

이제 명령 줄에서 mod2.py를 실행할 때

some_app $ python mod2.py

ImportError : no module named some_app 오류가 발생합니다.

하지만 out.py 파일 내부에서

# out.py
import some_app.mod2

그리고

some_app $ python out.py

완벽하게 실행됩니다.

따라서 무슨 일이 일어나고 있는지는 이것입니다. 동일한 패키지 내에있는 모듈에 패키지를로드 한 다음 해당 모듈을 __ main __ 파일로 실행했는데 작동하지 않습니다. 다음으로 다른 모듈 내에 동일한 모듈 ( __ main __ 로 실행 한 모듈)을로드 한 다음 다른 모듈을 __ main __ 로 실행합니다.

누군가 여기서 무슨 일이 일어나고 있는지 자세히 설명해 주시겠습니까?

업데이트


모든 모듈에서 모든 비표준 가져 오기는 django. 로 시작합니다. 그래서 왜 그리고 어떻게 그렇게하고 있는지 궁금했습니다.

업데이트 2

관련 링크



 

해결 방법

 

mod2.py some_app 의 일부입니다. 따라서 이미 내부에 있기 때문에 모듈을 가져 오는 것은 의미가 없습니다.

여전히 mod1을 가져올 수 있습니다. 실행하려면 some_app / __ init __. py 가 필요하다고 가정합니다. 그게 가능한지 확실하지 않습니다.

from. import some_module 은 당신이 원하는 것을 할 것입니다.

 

참조 페이지 https://stackoverflow.com/questions/10647729

 

 

반응형

댓글