我有一个金字塔应用程序,并且有此行
from zope.sqlalchemy import ZopeTransactionExtension
它没有任何问题
但是如果我在命令行中尝试同样的操作,我会得到
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named sqlalchemy
和
from zope.sqlalchemy.datamanager import ZopeTransactionExtension
ImportError: No module named sqlalchemy.datamanager
我不太确定为什么会这样。该文档具有same line,并且似乎至少对它们有效
为了使情况更清楚,我们将ZopeTransactionExtension类重命名为到ZopeTransactionEvents。使用“注册”版本的现有代码保持兼容。
[1.2版中的https://pypi.org/project/zope.sqlalchemy/解决方案是在实例化DBSession时使用
register
from zope.sqlalchemy import register DBSession = scoped_session(sessionmaker(autoflush=False)) register(DBSession)
根据https://github.com/zopefoundation/zope.sqlalchemy/issues/37
或将ZopeTransactionExtension
重命名为ZopeTransactionEvents
。