注册

SQLAlchemy2.0.0,按照步骤安装依赖,运行示例代码报错

123456 2023/08/07 871 2 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:Centos 7.7
【CPU】:
【问题描述】*:SQLAlchemy2.0.0,按照步骤安装依赖,示例代码运行报错。
环境信息:
(1)python版本:3.8.1
(2)SQLAlchemy版本:2.0.0
(3)sqlalchemy-dm版本:2.0.0
(4)dmPython版本:2.4.8
(5)达梦数据库版本:dm8
示例代码:https://eco.dameng.com/eco-file-server/file/eco/download/20221223102449X4O5XHXSW4OR04U7VL
报错信息:

查询所有结果:

Traceback (most recent call last):
  File "dmSQLAlchemy.py", line 80, in <module>
    main()
  File "dmSQLAlchemy.py", line 16, in main
    fun_insert(DBSession)
  File "dmSQLAlchemy.py", line 58, in fun_insert
    session.commit()
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1903, in commit
    trans.commit(_to_root=True)
  File "<string>", line 2, in commit
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
    ret_value = fn(self, *arg, **kw)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1218, in commit
    self._prepare_impl()
  File "<string>", line 2, in _prepare_impl
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
    ret_value = fn(self, *arg, **kw)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1193, in _prepare_impl
    self.session.flush()
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 4140, in flush
    self._flush(objects)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 4277, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 4237, in _flush
    flush_context.execute()
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 467, in execute
    rec.execute(self)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 644, in execute
    util.preloaded.orm_persistence.save_obj(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1188, in _emit_insert_statements
    result = connection.execute(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1414, in execute
    return meth(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 489, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1630, in _execute_clauseelement
    compiled_sql, extracted_params, cache_hit = elem._compile_w_cache(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 656, in _compile_w_cache
    compiled_sql = self._compiler(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 289, in _compiler
    return dialect.statement_compiler(dialect, self, **kw)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy_dm-2.0.0-py3.8.egg/sqlalchemy_dm/base.py", line 357, in __init__
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/compiler.py", line 1262, in __init__
    Compiled.__init__(self, dialect, statement, **kwargs)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/compiler.py", line 703, in __init__
    self.string = self.process(self.statement, **compile_kwargs)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/compiler.py", line 748, in process
    return obj._compiler_dispatch(self, **kwargs)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/visitors.py", line 143, in _compiler_dispatch
    return meth(self, **kw)  # type: ignore  # noqa: E501
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy_dm-2.0.0-py3.8.egg/sqlalchemy_dm/base.py", line 935, in visit_insert
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/compiler.py", line 5262, in visit_insert
    crud_params_struct = crud._get_crud_params(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/crud.py", line 294, in _get_crud_params
    _scan_cols(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/crud.py", line 616, in _scan_cols
    _append_param_parameter(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/crud.py", line 792, in _append_param_parameter
    value = _create_bind_param(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/crud.py", line 398, in _create_bind_param
    return bindparam._compiler_dispatch(compiler, **kw)
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/visitors.py", line 143, in _compiler_dispatch
    return meth(self, **kw)  # type: ignore  # noqa: E501
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy_dm-2.0.0-py3.8.egg/sqlalchemy_dm/base.py", line 825, in visit_bindparam
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/compiler.py", line 3525, in visit_bindparam
    ret = self.bindparam_string(
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy_dm-2.0.0-py3.8.egg/sqlalchemy_dm/dmPython.py", line 30, in bindparam_string
  File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy_dm-2.0.0-py3.8.egg/sqlalchemy_dm/base.py", line 669, in bindparam_string
TypeError: bindparam_string() got multiple values for argument 'bindparam_type'
回答 0
暂无回答
扫一扫
联系客服