无法初始化Elixir

Ped*_*dia 10 python mysql sqlalchemy python-elixir

我是从Elixir和SQL Alchemy开始的.我已经创建了一个连接Mysql数据库的python文件但是只要我用python执行,我就会得到错误:

root@raspberrypi:/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
Run Code Online (Sandbox Code Playgroud)

我一直在寻找它,但我找不到原因.这是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:nomasandroid42@localhost/yonkiPOPS'
session.bind.echo = True
setup_all()
create_all()
Run Code Online (Sandbox Code Playgroud)

我认为这可能是由于未安装所需的模块但我不知道哪一个.

Luc*_*zzi 15

Elixir 0.7.1似乎与SQLalchemy的最新版本0.8不兼容.你可以解决这个问题

sudo pip install SQLAlchemy==0.7.8
Run Code Online (Sandbox Code Playgroud)


Jai*_*zle 7

只需打开./elixir/entity.py,找到如下导入行:

from sqlalchemy.orm import ScopedSession, \
Run Code Online (Sandbox Code Playgroud)

然后将其调整为:

from sqlalchemy.orm import scoped_session as ScopedSession, \
Run Code Online (Sandbox Code Playgroud)