SQLAlchemy-某些表类上的ModuleMarker错误

时间:2018-12-04 16:17:29

标签: python postgresql sqlalchemy

我有一个简单的类,用于访问用于存储运行时间的表。 但是,当我尝试导入该类时,出现以下错误。

AttributeError: '_ModuleMarker' object has no attribute 'add_item'

我已经能够确定与设置表名和列有关,因为我还有另外两个访问两个不同表的类,并且在那里工作正常。 我基本上是从2个原始类中复制粘贴的代码,所以我不确定为什么它不起作用。

有没有办法产生更有用的错误代码?

运行时间类

from sqlalchemy import Column
from sqlalchemy import String
from sqlalchemy import TIMESTAMP
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

engine = create_engine('postgresql+psycopg2://postgres@localhost/reseller', encoding='utf-8', pool_size=50, max_overflow=200)
session = sessionmaker(bind=engine)()

Base = declarative_base()

class RunTimes(Base):
    __tablename__ = 'run_times'
    store = Column(String, primary_key=True, index=True, unique=True)
    start_time = Column(TIMESTAMP)
    end_time = Column(TIMESTAMP)

    def __init__(self, store):
        self.store = store
        results = session.query(RunTimes).filter(RunTimes.store.like(store)).first()
        self.start_time = results.start_time
        self.end_time = results.end_time

    def Update(self):
        session.merge(self)
        session.commit()

test.py

from RunTimes.RunTimes import RunTimes
rt = RunTimes("Store")

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,结果是出现了此错误,因为从Base继承的类与python文件和定义了python包的名称相同。  从您的 test.py 可以看到,情况也是这样。尝试为包,文件和类使用不同的名称。