2013-01-07 14 views
10

Zaczynam od Elixir i SQL Alchemy. Utworzyłem plik Pythona połączenia z bazą danych MySQL, ale jak tylko mogę wykonać z pytona pojawia się błąd poniżej:Niemożliwe do zainicjowania Elixir

[email protected]:/Python/mainFlask/yonkiPOPS# python yonki.py 
Traceback (most recent call last): 
    File "yonki.py", line 1, in <module> 
    from elixir import metadata, Entity, Field 
    File "/usr/local/lib/python2.7/dist-packages/Elixir-0.7.1-py2.7.egg/elixir/__init__.py", line 29, in <module> 
    from elixir.entity import Entity, EntityBase, EntityMeta, EntityDescriptor, \ 
    File "/usr/local/lib/python2.7/dist-packages/Elixir-0.7.1-py2.7.egg/elixir/entity.py", line 17, in <module> 
    from sqlalchemy.orm import MapperExtension, mapper, object_session, \ 
ImportError: cannot import name ScopedSession 

czekałem na niego, ale nie znaleźć przyczynę. Jest to plik yonki.py:

                                                                  from elixir import metadata, Entity, Field 
from elixir import Unicode, UnicodeText 
from elixir import * 
class User(Entity): 
     username = Field(String(64)) 

metadata.bind = 'mysql://root:[email protected]/yonkiPOPS' 
session.bind.echo = True 
setup_all() 
create_all() 

myślę, że to może ze względu na wymagany moduł nie jest zainstalowany, ale nie wiem który.

+0

Najpierw popraw swój współczynnik akceptacji –

Odpowiedz

7

Wystarczy otworzyć ./elixir/entity.py znajdź linię import takiego:

from sqlalchemy.orm import ScopedSession, \ 

następnie dostosować go do:

from sqlalchemy.orm import scoped_session as ScopedSession, \ 
15

Eliksir 0.7.1 wydaje się być niezgodny z najnowszą wersją SQLalchemy, 0.8. Można rozwiązać ten problem z

sudo pip install SQLAlchemy==0.7.8 
1

Jeśli wan't nadal będą mogli zaktualizować biblioteki z repozytoriów, lub nie masz dostępu do konta roota, aby zmienić plik, wystarczy użyć tego w pliku:

import sqlalchemy.orm 
sqlalchemy.orm.ScopedSession = sqlalchemy.orm.scoped_session 

przed

from elixir import * 
Powiązane problemy