0

我正在尝试将 Dataframe 写回 Access 数据库文件.mdb.accdb. 我正在使用sqlalchemysqlalchemy-access创建连接。

import sqlalchemy

db_file_path = os.path.join(dir_path, f"data\\{graph_name}\\results\\{file_name}")
connection_string = (r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' f"DBQ={db_file_path};" r'ExtendedAnsiSQL=1;')
connection_url = f"access+pyodbc:///?odbc_connect={urllib.parse.quote_plus(connection_string)}"
engine = sqlalchemy.create_engine(connection_url)
text_labels.to_sql('InstTextLabels', engine, index=False, if_exists='append')

我有pyodbcsqlalchemy-access通过pip. 如果我要在 Python 交互式 shell 或 Jupyter Notebook 中运行它,一切正常。但是当我使用 PyInstaller 构建一个可执行文件时,我得到:

File "solver.py", line 499, in main
export_results(file_name, graph_name, downstream_low, downstream_high, objective_results, objective_fuses, objective_recloseres, nodes, text_labels, dir_path)
File "solver.py", line 399, in export_results
engine = sqlalchemy.create_engine(connection_url)
File "sqlalchemy\engine\__init__.py", line 500, in create_engine
File "sqlalchemy\engine\strategies.py", line 61, in create
File "sqlalchemy\engine\url.py", line 172, in _get_entrypoint
File "sqlalchemy\util\langhelpers.py", line 267, in load
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:access.pyodbc
[5880] Failed to execute script solver

我不知道为什么这种情况不断发生。我的脚本只导入sqlalchemy,但我也包含hiddenimports=['sqlalchemy_access', 'pyodbc'].spec文件中。然而,没有任何帮助。

4

0 回答 0