2014-05-23 6 views
2

에 모듈을 포함 밖으로 나열하지 :디렉토리 (패키지)는 다음과 같이 내가 디렉토리 구조를 가지고 파이썬

테스트 케이스 : foo는, 바 :

  • __init__.py
  • agent_cases.py # 많은 클래스가 예 포함되어 있습니다.

있는 TestSuite :

  • __init__.py
  • main.py

나는 등 foo는, 바, 포함 클래스의 목록을 찾을 것으로 예상

import TestCases 
dir(TestCases.agent_cases) 

main.py,에서 지 등과 같은 에러가 다음과

AttributeError: 'module' object has no attribute 'agent_cases' 

은 또한 dir(TestCases)가 아래 모듈 이름을 반환하지 않는다. 내가 무엇이 누락 되었습니까? 도와주세요.

+1

관련 질문에서 [this reponse] (http://stackoverflow.com/a/7948672/1881610)를 참조하십시오. – Phillip

답변

2

agent_cases__init__.py에 가져 오거나 코드에 TestCases.agent_cases을 직접 가져와야합니다.

디렉토리 모듈의 모듈이 자동으로 가져 오기되지 않기 때문에 명시 적으로 수행하거나 사용자가 직접 가져올 수 있도록 문서화해야합니다.

+0

main.py에서 TestCases.agent_cases를 가져 왔습니다. 그게 충분하지 않니? – Kevin

+0

예.하지만'agent_cases'는 여전히'TestCases'의 멤버로 나타나지 않습니다. 단지 가져 오기 경로 일뿐입니다. – zmo

+0

내 실수가 있었어. 그것을 간과했다. .. 감사한다. :) – Kevin

0

패키지를 가져올 때 하위 모듈이 자동으로 가져 오기되지 않습니다. 당신은 명시 적으로 TestCases.__init__ 모듈에 agent_cases를 가져올 수 있습니다

import agent_cases 

당신이 모듈이 항상 패키지 가져 오기를 기대합니다.

+0

고마워. "TestCases.agent_cases 가져 오기"가 필요했습니다. 이것은 효과가 있었다. init 파일에는 매번 요구하지 않기 때문에 포함하지 않았다. 어쨌든 방향 주셔서 감사합니다. – Kevin

관련 문제