0

我正在尝试创建一个将一些数据导入 teradata 的 exe。作为测试脚本,我正在尝试使用以下代码连接 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

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

4

1 回答 1

-1

类似的问题已在此处得到解答:来源

让 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") 
于 2021-06-23T06:42:18.387 回答