2013-01-07 67 views
10

我以Elixir和SQL Alchemy開始。我已經創建了一個MySQL數據庫連接Python文件,但只要我使用Python執行我的錯誤波紋管:不可能初始化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 

我一直在尋找,但我沒有找到原因。這是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() 

我認爲這可能是由於未安裝所需模塊,但我不知道哪一個。

+0

先提高您的接受率 –

回答

7

的位置,只要打開./elixir/entity.py,找到這樣導入行:

from sqlalchemy.orm import ScopedSession, \ 

然後將其調整爲:

from sqlalchemy.orm import scoped_session as ScopedSession, \ 
15

Elixir 0.7.1似乎與最新版本的SQLalchemy 0.8不兼容。你可以解決這個問題

sudo pip install SQLAlchemy==0.7.8 
1

如果您wan't仍然能夠從存儲庫更新庫,或不具備root權限更改文件,只需要使用這個在你的文件:

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

from elixir import *