首页 > 解决方案 > Python 编译脚本给出“无法加载插件:sqlalchemy.dialects:presto”错误

问题描述

我用 pyinstaller 编译了 .py 文件,如下所示:

pyinstaller --hidden-import presto --hidden-import scipy._lib.messagestream  --onefile main.py

当我运行编译文件时,我得到了错误:

sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:presto

ps 我使用 sqlalchemy.engine 连接到 presto,例如:

engine = create_engine('presto://presto.service.example.com:8080/hive/default')

我在谷歌上没有找到任何有用的东西。

标签: pythonsqlalchemypyinstallerprestotrino

解决方案


我对 Teradata 有类似的问题:

让 Teradata 查询在 Pyinstaller 生成的 .exe 上运行。我将引擎从 SQLAlchemy 更改为 Teradata

从 :

import sqlalchemy as sa
user, pasw, hostname = UserName,Password, 'myurl.com'
# connect
td_engine = sa.create_engine('teradata://{}:{}@{}:22/'.format(user,pasw,hostname),echo=True)
df = pd.read_sql_query(query1,connect)

至:

import teradata
user, pasw, hostname = UserName,Password, 'myurl.com'
td = teradata.UdaExec (appName="test", version="1.0", logConsole=True)
td_engine = td.connect(method="odbc",system=hostname, username=user,password=pasw,driver="Teradata") 

也许从 sqlalchemy 更改为 pyodbc 或其他连接选项。


推荐阅读