2017-01-30 1 views
0

첫 번째 파이썬 프로젝트를 작성 중이며 왜 해석되지 않은 가져 오기 오류가 발생하는지 이해할 수 없습니다. apiProcessor와 apiDetail의 두 클래스가 있습니다. apiProcessor에서 apiDetail 메서드를 호출하려고합니다. 메서드가 있지만 가져 오기가 해결되지 않습니다. 둘 다 동일한 PyDev 프로젝트 내에서 동일한 패키지에 있습니다.파이썬 미해결 가져 오기 오류

어쨌든, 문제가 from apiDetail import apiDetail 모듈을 수입한다는 것입니다)

APIDETAIL

from sqlalchemy import create_engine 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy.orm import sessionmaker 
from sqlalchemy.ext.declarative.api import declared_attr 

    engine = create_engine("mysql+pymysql://efultz:[email protected]:3306/apidb", echo=False) 

    Base = declarative_base(engine) 
    ######################################################################## 
    class apiDetail(Base): 
     """""" 
     __tablename__ = 'api_detail' 
     __table_args__ = {'autoload':True} 

    #---------------------------------------------------------------------- 
    def loadSession(): 
     """""" 
     metadata = Base.metadata 
     Session = sessionmaker(bind=engine) 
     session = Session() 
     return session 

    if __name__ == "__main__": 
     session = loadSession() 
     res = session.query(apiDetail).all() 
     for entry in res: 
      print ('id: ', entry.api_id, ' description: ', entry.description, ' url: ', entry.url, 'json: ', entry.json) 

APIPROCESSOR 당신은 자바하지 파이썬을 작성하는

#!/usr/bin/python 
from apiDetail import apiDetail 

class apiProcessor: 

    def build_test_objects(self): 
     session = apiDetail.loadSession() 
     res = session.query(apiDetail).all() 
     for entry in res: 
      print ('id: ', entry.api_id, ' description: ', entry.description, ' url: ', entry.url, 'json: ', entry.json) 

     return res  

if __name__ == "__main__": 
    res = build_test_objects() 
    for entry in res: 
     print ('api id: ', entry.api_id, ' description: ', entry.description, ' url: ', entry.url, 'json: ', entry.json) 
+4

질문에 오류의 전체 추적을 추가하십시오. – Matthias

답변

1

을 (APIDETAIL에서 loadSession를 호출하려고) apiDetailapiDetail 패키지. 그것은 당신이하려고하는 것이 아닙니다. 대신 import apiDetail을 사용하고 ... apiDetail.apiDetail ...으로 클래스에 액세스 한 다음 코드를 파이썬으로 다시 작성하십시오. :).