2012-05-22 3 views
7

Python 네임 스페이스 패키지는 여러 디렉토리, zip 파일 또는 사용자 정의 가져 오기 프로그램에 분산 될 수 있습니다. 네임 스페이스 패키지의 모든 가져 오기 가능한 서브 모듈을 반복하는 올바른 방법은 무엇입니까?파이썬 네임 스페이스 패키지의 모든 서브 모듈을 어떻게 가져 옵니까?

+2

무엇을하려고합니까? 너 뭐 해봤 니? – Daenyth

+1

pkgutil 모듈을 사용할 수 있습니다. http://stackoverflow.com/questions/3365740/how-to-import-all-submodules –

+0

나는 그것을 플러그인 열거에 사용하고자한다. – joeforker

답변

1

import confusion을 읽으십시오.

매우 명확하게 패키지와 하위 모듈을 가져올 수있는 모든 방법을 구별하고 프로세스에서 질문에 대답합니다. 패키지에서 특정 서브 모듈이 필요한 경우 from io.drivers import zipimport io.drivers.zip으로 작성하는 것이 훨씬 편리합니다. 전자를 사용하면 모듈을 전체 이름 대신 zip으로 참조 할 수 있기 때문입니다.

from modname import *을 사용하면 모듈의 모든 항목을 현재 네임 스페이스로 쉽게 가져올 수 있습니다. 그러나이 진술은 절대로 사용하지 않아야합니다.

+0

나는 네임 스페이스 패키지에서 "가져 오기 *"할 때 특별히 "가져 오기 *"에 대해 묻지 않습니다. 아무 일도 일어나지 않습니다. 대신, 내가 가져올 수있는 모든 것을 반복하고 싶습니다. – joeforker

+0

'*'imports를 사용하는 것은 끔찍한 습관입니다. 그것이 유효한 파이썬이지만, 대부분은 좁은 몇 가지 경우를 제외하고는 항상 나쁜 생각입니다. – Daenyth

+0

예 시간 효율성을 줄이기 때문에 동의하지만 특정 모듈을 모르는 상황에서는 전체 패키지를 가져 오는 것이 구원자가됩니다. –

관련 문제