Скомпилированный скрипт на Python, выдающий ошибку «Не могу загрузить плагин: sqlalchemy.dialects: presto» - PullRequest
0 голосов
/ 19 ноября 2018

Я скомпилировал .py файл с помощью pyinstaller следующим образом:

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')

Я не нашел ничего полезного в Google.

1 Ответ

0 голосов
/ 16 января 2019

У меня была похожая проблема с Teradata:

Чтобы запустить запросы Teradata на .exe, созданном Pyinstaller.Я изменил свой движок с 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 или другие параметры подключения.

...