问题描述
我正在尝试将数据帧写回到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
。如果我要在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
文件中。但是,没有任何帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)