sqlalchemy.exc.NoSuchModuleError:无法加载插件:sqlalchemy。方言:TeradasQL[10076]无法执行脚本pyinstalletest

2024-10-01 13:29:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个exe,将一些数据导入teradata。作为测试脚本,我正在尝试使用以下代码连接teradata。我可以在我的本地计算机上成功连接

from sqlalchemy import create_engine

user = 'dbc'
pasw=user
host = '192.168.1.7'
# connect
td_engine = create_engine('teradatasql://'+ user +':' + pasw + '@'+ host + '')
sql="select * from dbc.usersV"
x=td_engine.execute(sql)

我已经使用下面的命令生成了exe

pyinstaller --add-binary "C:\Users\krishna\AppData\Local\Programs\Python\Python38\Lib\site-packages\teradatasql\teradatasql.dll;teradatasql" -F pyinstalletest.py 

一旦生成了exe,我将尝试执行exe,我会发现下面的错误

Traceback (most recent call last):
  File "pyinstalletest.py", line 8, in <module>
  File "sqlalchemy\engine\__init__.py", line 479, in create_engine
  File "sqlalchemy\engine\strategies.py", line 61, in create
  File "sqlalchemy\engine\url.py", line 172, in _get_entrypoint
  File "sqlalchemy\util\langhelpers.py", line 267, in load
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:teradatasql
[10076] Failed to execute script pyinstalletest

我已经通过各种链接,但没有运气。请帮我解决这个错误


Tags: infrompysqlalchemycreatelineexeengine
1条回答
网友
1楼 · 发布于 2024-10-01 13:29:12

这里也回答了类似的问题:Source

To get the Teradata Queries to run on the .exe produced by Pyinstaller. I changed my engine from SQLAlchemy to 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") 

相关问题 更多 >