Python从3.8升级到3.11后出现Pyodbc与SQLAlchemy连接错误
解决Python 3.11下SQLAlchemy连接Access数据库的NoSuchModuleError问题
问题分析
Python 3.8环境下可正常运行的Access数据库连接代码,升级到Python 3.11后出现sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:access.pyodbc错误,核心原因是SQLAlchemy 1.4及以后版本移除了官方对Access方言的支持,而Python 3.11搭配的SQLAlchemy版本通常高于3.8环境中的版本,导致找不到对应的驱动插件。
解决步骤
1. 安装第三方Access方言包
执行以下命令安装专门适配SQLAlchemy的Access方言扩展:
pip install sqlalchemy-access
该包会为SQLAlchemy注册access.pyodbc方言,直接解决插件找不到的问题。
2. 验证驱动与Python版本兼容性
确保安装的Microsoft Access驱动(支持*.mdb/*.accdb)版本与Python版本匹配:
- 若使用64位Python 3.11,必须安装64位的Microsoft Access驱动;
- 若为32位Python,则安装32位驱动。
驱动版本不匹配的话,即使方言包安装正确,仍可能出现连接失败的情况。
3. 原代码无需大幅修改
安装sqlalchemy-access后,原有连接代码可直接运行,无需调整URI格式,该包会自动完成方言的注册工作。
内容的提问来源于stack exchange,提问作者Zanam
相关产品推荐
相关产品推荐

