python - 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')
我在谷歌上没有找到任何有用的东西。
解决方案
我对 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 或其他连接选项。
推荐阅读
- python - 使用多线程下载文件时内存不断增长
- swift - Swift Geocode 失败并出现错误:Error Domain=kCLErrorDomain Code=8 "(null)"
- flutter - 初始化initstate时如何聚焦文本字段
- python - 无法为使用 PEP 517 且无法直接安装的密码学构建轮子
- git - 如何在我签出到上一个提交后推送,然后我做了一些提交,现在当我推送时,没有发送更改
- git - Visual Studio 版本控制 UI 中的图标覆盖(彩色圆圈)是什么意思?
- python - 在Django中提交多页表单后清除会话数据
- reactjs - 如果字段不为空,Graphql Hasura 更新
- intellij-idea - IntelliJ 不显示生成选项
- angular - 从 ionic 4 中的服务调用页面的功能