2013-10-10 15 views
4

這怎麼可能是 - 通過運行代碼「NameError:名字 '浮動' 沒有定義」,在SQLAlchemy的

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) 

得到錯誤

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

然後我使用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) [GCC 4.7.3] on linux2和sqlalchemy 0.7.9

p.s.另外

NameError: name 'Numeric' is not defined

回答

9

您需要導入該對象,但您尚未在代碼中導入該對象。

只需添加Float到現有from sqlalchemy import行:

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

這同樣適用於Numeric;你需要明確地導入它,它不是一個Python內置的。

相關問題