SQLAlchemy“重置或类似过程中出现异常”+“AttributeError:'NoneType'对象没有属性'pack'”

Jos*_*ssy 5 python sqlalchemy

运行此代码时出现错误:

engine = sa.create_engine([connection_str])
connection = engine.connect()
Run Code Online (Sandbox Code Playgroud)

部分回溯:

Exception during reset or similar
Traceback (most recent call last):
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 682, in _finalize_fairy
    fairy._reset(pool)
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 887, in _reset
    pool._dialect.do_rollback(self)
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 667, in do_rollback
    dbapi_connection.rollback()
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/mysql/connector/connection.py", line 1236, in rollback
    self._execute_query("ROLLBACK")
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/mysql/connector/connection.py", line 1248, in _execute_query
    self.cmd_query(query)
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/mysql/connector/connection.py", line 828, in cmd_query
    packet.extend(lc_int(len(self._query_attrs)))
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/mysql/connector/utils.py", line 164, in lc_int
    return bytearray(struct.pack('<B', i))
AttributeError: 'NoneType' object has no attribute 'pack'
Exception closing connection <mysql.connector.connection.MySQLConnection object at 0x7fc69049fee0>
Traceback (most recent call last):
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 682, in _finalize_fairy
    fairy._reset(pool)
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 887, in _reset
    pool._dialect.do_rollback(self)
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 667, in do_rollback
    dbapi_connection.rollback()
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/mysql/connector/connection.py", line 1236, in rollback
    self._execute_query("ROLLBACK")
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/mysql/connector/connection.py", line 1248, in _execute_query
    self.cmd_query(query)
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/mysql/connector/connection.py", line 828, in cmd_query
    packet.extend(lc_int(len(self._query_attrs)))
  File "/Users/philipjoss/opt/miniconda3/envs/capra/lib/python3.9/site-packages/mysql/connector/utils.py", line 164, in lc_int
    return bytearray(struct.pack('<B', i))
AttributeError: 'NoneType' object has no attribute 'pack'
Run Code Online (Sandbox Code Playgroud)

全程追溯

如果我添加会话,查询等工作正常,但我总是在代码运行结束时收到此错误。

Python 是 3.9.6,SQLAlchemy 是 1.4.23,MySQL 是 8.0.26。

有任何想法吗?


更新:

我已经升级到 SQLAlchemy 1.4.25 但仍然收到错误...

Arc*_*ave -1

确保语法正确且大小写正确(区分大小写)

    from sqlalchemy import create_engine
    engine = create_engine("mysql+mysqlconnector://root:examplepassword@localhost/")
    connection = engine.connect()
Run Code Online (Sandbox Code Playgroud)

检查此文档链接方言文档链接以获取指导

MySQL 方言使用 mysql-python 作为默认 DBAPI。有许多可用的 MySQL DBAPI,包括 MySQL-connector-python 和 OurSQL:

默认

engine = create_engine('mysql://scott:tiger@localhost/foo')

mysqlclient(MySQL-Python 的一个维护分支)

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

PyMySQL

engine = create_engine('mysql+pymysql://scott:tiger@localhost/foo')