다음과 같은 프로젝트 구조가 있습니다.
/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
'파이썬' 카테고리의 다른 글
파이썬 목록 생성 및 초기화 (0) | 2021.02.17 |
---|---|
파이썬 첫 번째 인수로 인스턴스가있는 바인딩되지 않은 메서드는 문자열을 얻었지만 다른 것이 필요합니다. (0) | 2021.02.17 |
파이썬 문자열에서 단어의 첫 등장을 제거 하시겠습니까? (0) | 2021.02.16 |
파이썬 ipython 노트북 --pylab 인라인 : 플롯 확대 / 축소 (0) | 2021.02.16 |
파이썬 Python에서 COM / ActiveX로 무엇을 할 수 있습니까? (0) | 2021.02.16 |
댓글