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()

必要なモジュールがインストールされていないことが原因かもしれませんが、どれかわかりません。

4

4 に答える 4

15

Elixir 0.7.1は、最新バージョンのSQLalchemy0.8と互換性がないようです。あなたはその問題を解決することができます

sudo pip install SQLAlchemy==0.7.8
于 2013-01-12T07:29:15.610 に答える
7

./elixir/entity.pyを開き、次のようなインポート行を見つけます。

from sqlalchemy.orm import ScopedSession, \

次に、次のように調整します。

from sqlalchemy.orm import scoped_session as ScopedSession, \
于 2013-07-29T03:25:42.620 に答える
2

sqlalchemy0.8がScopedSessionの場所を変更したようです

http://elixir.ematia.de/trac/ticket/121

于 2013-05-27T18:45:58.633 に答える
1

それでもリポジトリからライブラリを更新できない場合、またはファイルを変更するためのrootアクセス権がない場合は、ファイルでこれを使用してください。

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

from elixir import *
于 2014-07-01T09:39:12.083 に答える