我正在尝试将一个Dataframe写回Access数据库文件.mdb或.accdb。我正在使用sqlalchemy和sqlalchemy-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')我通过pyodbc和sqlalchemy-access安装了pip。如果我要在或朱庇特笔记本中运行这个程序,它都能工作。但是,当我用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,但我也在.spec文件中包含了hiddenimports=['sqlalchemy_access', 'pyodbc']。然而,什么也帮不上忙。
发布于 2022-03-30 17:29:56
将这些导入与sqlalchemy一起添加:
import sqlalchemy_access as sa_a
import sqlalchemy_access.pyodbc as sa_a_pyodbchttps://stackoverflow.com/questions/63699178
复制相似问题