SQLAlchemy Pfadproblem

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
flokki
User
Beiträge: 11
Registriert: Dienstag 11. September 2007, 13:41

hi!
wiedermal melde ich mich mit ein frage, die vermutlich alle von euch beantworten können, nur ich habs wiedermal ned gecheckt.

hab die forumuser schon letztens mit fragen zu sqlobject traktiert. nach ein wenig nachlesen im netz kam mir vor, dass sqlalchemy scheinbar mächtiger ist bzw. bessere performance hat. deshalb wollte ich mal ein tutorial durcharbeiten:
http://www.rmunn.com/sqlalchemy-tutorial/tutorial.html

da ich hier auf einem windows rechner sitze, schaut der code bei mir so aus:

Code: Alles auswählen

import sys, os
import sqlite3
from sqlalchemy import *



db = create_engine('sqlite:///C|/Dokumente und Einstellungen/Desktop/test/test.db')
db.echo = False  # Try changing this to True and see what happens

metadata = BoundMetaData(db)

users = Table('users', metadata,
    Column('user_id', Integer, primary_key=True),
    Column('name', String(40)),
    Column('age', Integer),
    Column('password', String),
)
users.create()

i = users.insert()
i.execute(name='Mary', age=30, password='secret')
i.execute({'name': 'John', 'age': 42},
          {'name': 'Susan', 'age': 57},
          {'name': 'Carl', 'age': 33})

s = users.select()
rs = s.execute()

row = rs.fetchone()
print 'Id:', row[0]
print 'Name:', row['name']
print 'Age:', row.age
print 'Password:', row[users.c.password]

for row in rs:
    print row.name, 'is', row.age, 'years old'
und das ist der fehler:
Traceback (most recent call last):
File "alchemy-test.py", line 10, in <module>
metadata = BoundMetaData(db)
NameError: name 'BoundMetaData' is not defined

ich vermute mal, er findet die datenbank nicht. kann mir bitte jemand weiter helfen? ist der pfad unter windows falsch (hab schon verschiedenste pfadangaben versucht, keine führte zum erfolg)? stimmt sonst etwas nicht? komme grad nicht weiter.

dank im voraus,
flokki
BlackJack

Das hat nichts mit der Datenbank zu tun, es gibt offensichtlich keinen Namen `BoundMetaData`. Der müsste in `sqlalchemy` vorhanden sein. Entweder stimmt etwas mit der Installation von dem Paket nicht, oder es gibt diese Klasse in der Version, die Du verwendest wirklich nicht.
flokki
User
Beiträge: 11
Registriert: Dienstag 11. September 2007, 13:41

danke für die schnelle antwort!
ich verwende die neue 0.4beta5 version von SA. unter \lib\site-packages\ hab ich das SA egg. daran sollte es ned liegen denk ich.
flokki
User
Beiträge: 11
Registriert: Dienstag 11. September 2007, 13:41

anfang halt!!!

habs gefunden. war das problem zwischen 3.0 und 4.0beta. jez hauts hin.

danke trotzdem + mfg
flokki
Antworten