我使用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.s。我使用sqlalchemy.engine连接到presto,例如:
engine = create_engine('presto://presto.service.example.com:8080/hive/default')
我在Google上找不到任何有用的东西。
答案 0 :(得分:0)
我在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或其他连接选项。