无法初始化Elixir

10

我正在学习Elixir和SQLAlchemy。我已经创建了一个连接到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

我一直在寻找它,但是我找不到原因。这是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()

我认为可能是由于某个必需的模块未安装,但我不知道是哪个。


先提高您的接受率。 - user2665694
4个回答

15

Elixir 0.7.1与SQLalchemy的最新版本0.8似乎不兼容。您可以通过以下方式解决此问题:

sudo pip install SQLAlchemy==0.7.8

7

只需打开./elixir/entity.py文件,找到类似于以下导入行:

from sqlalchemy.orm import ScopedSession, \

然后将其调整为:
from sqlalchemy.orm import scoped_session as ScopedSession, \

2

1
如果您仍希望能够从存储库更新您的库,或者没有根访问权限更改文件,则只需在您的文件中使用以下内容:
import sqlalchemy.orm
sqlalchemy.orm.ScopedSession = sqlalchemy.orm.scoped_session

before

from elixir import *

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接