sqErrorchemy中的“NameError:name'Float'未定义”

时间:2013-10-10 12:50:26

标签: python sqlalchemy

如何 - 获得错误

Traceback (most recent call last):
    File "stx_sql.py", line 19, in<module>
    Column('value', Float),  
NameError: name 'Float' is not defined

运行代码

from sqlalchemy import create_engine
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey

engine = create_engine('sqlite:///tttx.sqlite', echo=True)
#engine = create_engine('sqlite:///:memory:', echo=True)

metadata = MetaData()
users_table = Table('users', metadata,
        Column('id', Integer, primary_key=True),
        Column('name', String(50), nullable=False),
        Column('fullname', String(50), nullable=False),
        Column('password', String(70), nullable=False)
    )
points_table = Table('points', metadata,
        Column('id', Integer, primary_key=True),
        Column('name', String(50), unique=True, nullable=False),
        Column('description', String(150)),
        Column('type', Integer),
        Column('value', Float),
        Column('refreshtime', Float),
        Column('lastupdate', Float)
    )
types_table = Table('types', metadata,
        Column('id', Integer, primary_key=True),
        Column('name', String(50), unique=True, nullable=False),
        Column('description', String(150))
    )
metadata.create_all(engine)

然后我使用Python 2.7.5(默认,2013年5月15日,22:43:36)[MSC v.1500 32位(英特尔)]获胜 32和sqlalchemy 0.8.2 然后我使用Python 2.7.4(默认,2013年9月26日,03:20:56) linux2和sqlalchemy 0.7.9上的[GCC 4.7.3]

P.S。还

  

NameError:未定义名称“数字”

1 个答案:

答案 0 :(得分:11)

您需要导入该对象,而您的代码中尚未导入该对象。

只需将Float添加到现有的from sqlalchemy import行:

from sqlalchemy import Table, Column, Float, Integer, String, MetaData, ForeignKey

同样适用于Numeric;你需要显式导入它,它不是内置的Python。