2017-01-30 10 views
0

私は最初のPythonプロジェクトを書いていますが、なぜ私は未解決のインポートエラーが発生しているのか理解できません。私は2つのクラス - apiProcessorとapiDetailを持っています。 apiProcessorでは、私はapiDetailからメソッドを呼び出そうとしています。メソッドはありますが、インポートは解決できません。どちらも同じPyDevプロジェクト内の同じパッケージに入っています。Python未解決のインポートエラー

とにかく、問題は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は、Javaではないのpythonを書いている

#!/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としてクラスにアクセスし、コードをPythonに書き直してください:)。