Python编译脚本,错误为;Can';加载插件:sqlalchemy.dialogs:presto";

Python编译脚本,错误为;Can';加载插件:sqlalchemy.dialogs:presto";,python,sqlalchemy,pyinstaller,presto,trino,Python,Sqlalchemy,Pyinstaller,Presto,Trino,我使用pyinstaller编译了.py文件,如下所示: pyinstaller --hidden-import presto --hidden-import scipy._lib.messagestream --onefile main.py 当我运行编译后的文件时,我得到了错误: sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:presto p、 我使用sqlalchemy.engine连

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

pyinstaller --hidden-import presto --hidden-import scipy._lib.messagestream  --onefile main.py
当我运行编译后的文件时,我得到了错误:

sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:presto
p、 我使用sqlalchemy.engine连接到presto,比如:

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

我在谷歌上没有发现任何有用的东西。

我对Teradata也有类似的问题:

获取要在Pyinstaller生成的.exe上运行的Teradata查询。我将引擎从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)
致:


可能从sqlalchemy更改为pyodbc或其他连接选项

如果在不编译的情况下运行
main.py
,则不会发生错误?@SuperShoot直接运行脚本时不会发生错误您确定
--hidden import presto
正确吗?似乎DB-API驱动程序是由提供的。pypi中的包似乎不相关。@IljaEverilä是的,你是对的,我尝试了许多不同的包作为隐藏导入,但失败了,包括pyhiveThis。这可能与第三方方言的使用有关。也许pyinstaller需要一些手来握住它?
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")