2011-11-17 3 views
0

문제점이있는 프로젝트가 있습니다.다른 곳에서 패키지를 가져올 때 패키지 내의 상위 디렉토리에서 모듈 가져 오기

kreveik. 
|-- classes 
| |-- baseclasses.py 
| |-- family.py 
| |-- __init__.py 
| `-- network.py 
|-- family 
| |-- __init__.py 
| `-- killer.py 
`-- genetic 
    `-- __init__.py 

이것은 프로젝트의 관련 부분입니다. 추적 코드는 내 코드에서 무엇을하려고했는지 설명합니다.

/home/mali/workspace/kreveik/<ipython-input-7-ec5770ffbdf2> in <module>() 
----> 1 import kreveik 

/home/mali/workspace/kreveik/kreveik/__init__.py in <module>() 
----> 1 import classes 
     2 import numpy as num 
     3 import matplotlib.pyplot as plt 
     4 import network 
     5 import probes 

/home/mali/workspace/kreveik/kreveik/classes/__init__.py in <module>() 
     9 import copy 
    10 from baseclasses import ProbeableObj,Ensemble,Element 
---> 11 from network import TopologicalNetwork,Motif,Network 
    12 from family import Family 
    13 

/home/mali/workspace/kreveik/kreveik/classes/network.py in <module>() 
     3 """ 
     4 
----> 5 import classes 
     6 import numpy as num 
     7 import matplotlib.pyplot as plt 

ImportError: No module named classes 

내가 /kreveik가 나는이 /kreveik/kreveik/__init__.py에서의 초기화 파일이 패키지를 kreveik 가져 오려고 디렉토리에 대화 형 파이썬 세션을 열고,이 패키지에 필요한 다른 도구를 가져 오기 시작하고있는 패키지 classes을 사용하여 가장 많이 사용하는 클래스를 가져오고, 폴더에 대한 계층 구조에서 해당 위치를 통해 접근 할 수 있다고 생각합니다. /kreveik/kreveik/classes/network.py 파일 내에서 classes 호출은 다음과 같이 실패합니다. 그것은 프로젝트 디렉토리의 최상위 레벨에 있지 않습니다. 계층. 나는 내 수업의 모든 부분에 도달 할 계획이었는데, classes.baseclasses.SomeClass()으로, 내가 프로젝트에서 그것을 부르는 곳과 관계가 없다. 내가 어디에서 잘못 했니?

감사합니다. 추신 : 나는이 문제를 다루는 비슷한 항목이 모자라는 것을 알고 있지만, 나를 도울 수있는 모자를 찾지 못했습니다.

답변

1

또한 하위 패키지에서 가져올 때 동봉 한 패키지를 참조해야합니다.

이 예에서는 network.py에,

from kreivik.classes import * 
+0

이 일을 사용하지만를 PyDev (이클립스)이 불법이라고 생각합니다. –

+0

PyDev를 사용하지 않으므로 문제가 보이지 않습니다.'import kreivik.classes'를 지정하면 어떻게됩니까? –

관련 문제