2012-10-24 3 views
0

다음과 같은 프로젝트 뼈대가 있습니다.Python에서 클래스를 가져올 수 없습니다.

ex47 
    bin/ 
    docs/ 
    ex47/ 
     __init__.py 
    tests/ 
     __init__.py 
     game_tests.py 
    game.py 
    setup.py 

Aptana Studio에서 작업. game_tests.py에서 나는

from nose.tools import * 
from ex47.game import Room 

을 가지고 있지만 Aptana를 내가 클래스로 'game.py'에 정의 방을 찾을 수 없었던 소리지르된다. 명령 줄에 nosetests을 실행하면 오류가 발생합니다 : 가져 오기 오류 (게임이라는 모듈 없음). 잘못된 것 같습니다.

+0

실행하면 어떤 파이썬 추적 코드가 생깁니 까? – Eric

+2

최상위 ex47 디렉토리에'__init __. py'가 있습니까? – mayhewr

+0

정말 정확하지는 않지만 PyCharm IDE를 사용해보십시오. 무료 및 오픈 소스 버전이 있으며 내 생각에 Aptana보다 사용하기가 훨씬 쉽습니다. 자동으로 많은 문제를 처리하기 때문입니다. 따라서 특히 복잡한 프로젝트를 시작할 때 가장 익숙한 파이썬 전문가는 아닙니다. –

답변

5

나는 두 가지 문제를 참조하십시오

  • 최상위 ex47가 유효한 패키지되지 않습니다
  • 최상위 ex47은 PYTHONPATH

첫번째는 분명하다에없는 (더 __init__.py 없음). ex47.game을 사용하여 game.py를 가져올 수있게하려면 ex47이 유효한 패키지 여야합니다. 그래서 아마 유효한 패키지 인 ex47 내부에 넣고 싶었겠습니까?

두 번째 문제가 발생하면 파이썬은 PYTHONPATH에서 ex47과 현재 디렉토리 (명령을 실행할 때 사용중인 디렉토리)에서 ex47을 찾습니다. 아마도 이들 중 누구도 해당하지 않으므로 ex47을 찾을 수 없습니다.

다음 디렉토리 구조가 있다면, 위의 고려 :

ex47 
    bin/ 
    docs/ 
    ex47/ 
     __init__.py 
     game.py 
    tests/ 
     __init__.py 
     game_tests.py 
    setup.py 

과 같이 테스트를 실행하려고 : 최상위 ex47 디렉토리에있는 동안

nosetests tests 

가 작동합니다 (참고 최상위 부분에 __init__.py이 없음 ex47).

+0

어떻게 내 PYTHONPATH에 ex47을 설정합니까? – Dombey

+0

현재 세션의 지속 기간 동안'export PYTHONPATH =/path/to/ex47 : $ PYTHONPATH'. Aptana에서 원한다면 프로젝트 속성을 조사해야하며, PYTHONPATH를 수정할 수있는 설정이 있습니다. – kgr

+0

Aptana의 하우투 - http://pydev.org/manual_101_project_conf2.html – kgr

관련 문제