2017-01-30 57 views
0

我正在编写我的第一个Python项目,我无法理解为什么我得到未解决的导入错误。我有2个类 - apiProcessor和apiDetail。在apiProcessor中,我试图从apiDetail调用一个方法。该方法在那里,但导入无法解决。两者在同一个PyDev项目中都在同一个包中。Python未解析导入错误

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(试图从APIDETAIL调用loadSession)

#!/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

您编写Java不蟒蛇;)

无论如何,问题是,from apiDetail import apiDetail进口模块apiDetail来自apiDetail包。这不是你想要做的。改为使用import apiDetail ...然后以apiDetail.apiDetail的身份访问该类,然后将您的代码重新编写为python :)。