2009-07-17 6 views
0

지고, 다른 모듈을 수입 모듈 가져 오려는 :ajax.py, 나는이 import 문이 ImportError를

# import locals from ORM (Storm) 
from storm.locals import * 
:

구성 요소/db_init.py에서
import components.db_init as db 

, 나는이 import 문을을

그래서
from storm.properties import Bool, Int, Float, RawStr, Chars, Unicode, Pickle 
from storm.properties import List, Decimal, DateTime, Date, Time, Enum 
from storm.properties import TimeDelta 
from storm.references import Reference, ReferenceSet, Proxy 
from storm.database import create_database 
from storm.exceptions import StormError 
from storm.store import Store, AutoReload 
from storm.expr import Select, Insert, Update, Delete, Join, SQL 
from storm.expr import Like, In, Asc, Desc, And, Or, Min, Max, Count, Not 
from storm.info import ClassAlias 
from storm.base import Storm 

, 내가 ajax.py에 그 import 문을 실행, I GE :

및 구성 요소/폭풍/locals.py에서 , 그것은이있다 t이 오류 :

<type 'exceptions.ImportError'>: No module named storm.properties 

내가 ... 예외없이 구성 요소/db_init.py 벌금을 실행할 수 있습니다 내가 무슨 일이야 아무 생각이 없습니다.

누군가이 문제에 대해 밝힐 수 있습니까?

답변

2

나는 storm.locals의 패키지 이름에 대한 생각이 다르다고 생각합니다. (대부분 components.storm.locals으로 생각됩니다). storm.locals의 상단에 __name__을 인쇄하여이를 확인할 수 있습니다. 현재 패키지와 관련이없는 가져 오기를 사용하는 경우 패키지 이름이 일치해야합니다.

여기에서 상대 가져 오기를 사용하면됩니다. localsproperties이 같은 패키지에 있기 때문에, storm.locals 안쪽에 당신은 단지 등

from properties import Bool 

등을 할 수 있어야한다.

+0

이것은 내 문제를 해결하지만 다른 발굴. Storm의 모든 내부 모듈은 어떤 이유에서든 'import storm. {module_name}'을 사용합니다. 나는 이것이 스톰이 할아버지 모듈에 의해 사용될 수 없다는 것을 의미한다고 생각합니다! – alecwh

+0

나는 너무 일찍 말했다. Wuub는 아래에서이 문제를 일주하는 몇 가지 방법을 열거했습니다. – alecwh

1

당신이 하나 필요

  • 추가 (...) PYTHONPATH에/구성 요소/폭풍, 구성 요소/폭풍/locals.py에서
  • 사용 상대 수입 또는
  • 수입 속성 대신 폭풍. 속성의
관련 문제