Python Teradataml 连接
Python Teradataml Connection
我正在尝试使用 Teradata 的 Python teradataml 库来使用 LDAP 的日志机制创建一个简单的数据库连接。但是,我遇到了 'NoneType' 的属性错误 ojbect has no attribute dialect in relation to sqlalchemy_engine.dialect.
我使用主机名创建连接的代码已更改
import teradataml as tdml
from teradataml import *
hostname = "address of host"
schema = "DL_RBA_DSS"
td_context = create_context(host = hostname, logmech='LDAP', temp_database_name = schema)
print(td_context)
当 运行 代码出现以下错误时:
File "c:/Python/teradatamlconnection.py", line 7, in <module>
td_context = create_context(host = hostname, logmech='LDAP', temp_database_name = schema)
File "C:\Users\UserID\AppData\Local\Programs\Python\Python36\lib\site-packages\teradataml\context\context.py", line 287, in create_context
_load_function_aliases()
File "C:\Users\UserID\AppData\Local\Programs\Python\Python36\lib\site-packages\teradataml\context\context.py", line 532, in _load_function_aliases
__set_vantage_version()
File "C:\Users\UserID\AppData\Local\Programs\Python\Python36\lib\site-packages\teradataml\context\context.py", line 562, in __set_vantage_version
if td_sqlalchemy_engine.dialect.has_table(td_sqlalchemy_engine, "versionInfo", schema="pm"):
AttributeError: 'NoneType' object has no attribute 'dialect'
我已尝试更新 teradatasqlalchemy 和 sqlalchemy 库,但我仍然遇到错误。显示满足所有要求:
PS C:\Python\dsssecurity> pip install teradatasqlalchemy --upgrade
Requirement already up-to-date: teradatasqlalchemy in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (16.20.0.8)
Requirement already satisfied, skipping upgrade: teradatasql in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradatasqlalchemy) (16.20.0.52)
Requirement already satisfied, skipping upgrade: sqlalchemy>=1.2.11 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradatasqlalchemy) (1.3.13)
Requirement already satisfied, skipping upgrade: pycryptodome in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradatasql->teradatasqlalchemy) (3.9.0)
PS C:\Python\dsssecurity> pip install teradataml --upgrade
Requirement already up-to-date: teradataml in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (16.20.0.4)
Requirement already satisfied, skipping upgrade: teradatasql in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradataml) (16.20.0.52)
Requirement already satisfied, skipping upgrade: pandas>=0.22 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradataml) (1.0.1)
Requirement already satisfied, skipping upgrade: psutil in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradataml) (5.6.3)
Requirement already satisfied, skipping upgrade: teradatasqlalchemy>=16.20.0.8 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradataml) (16.20.0.8)
Requirement already satisfied, skipping upgrade: pycryptodome in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradatasql->teradataml) (3.9.0)
Requirement already satisfied, skipping upgrade: numpy>=1.13.3 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from pandas>=0.22->teradataml) (1.18.1)
Requirement already satisfied, skipping upgrade: pytz>=2017.2 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from pandas>=0.22->teradataml) (2017.2)
Requirement already satisfied, skipping upgrade: python-dateutil>=2.6.1 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from pandas>=0.22->teradataml) (2.6.1)
Requirement already satisfied, skipping upgrade: sqlalchemy>=1.2.11 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradatasqlalchemy>=16.20.0.8->teradataml) (1.3.13)
Requirement already satisfied, skipping upgrade: six>=1.5 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from python-dateutil>=2.6.1->pandas>=0.22->teradataml) (1.11.0)
对于 logmech='LDAP'
,您必须通过单独的属性或作为 logdata
字符串的一部分提供用户名和密码。
对于 logdata,字符串可以以任何格式 authcid=diruser password=dirpass
或只是 diruser password=dirpass
或 diruser@@dirpass
开头。如果有多个目录映射,那么您可以为要使用的数据库附加限定符 user= and/or profile=;如果有多个目录领域,您可以附加一个 realm= 限定符`
我正在尝试使用 Teradata 的 Python teradataml 库来使用 LDAP 的日志机制创建一个简单的数据库连接。但是,我遇到了 'NoneType' 的属性错误 ojbect has no attribute dialect in relation to sqlalchemy_engine.dialect.
我使用主机名创建连接的代码已更改
import teradataml as tdml
from teradataml import *
hostname = "address of host"
schema = "DL_RBA_DSS"
td_context = create_context(host = hostname, logmech='LDAP', temp_database_name = schema)
print(td_context)
当 运行 代码出现以下错误时:
File "c:/Python/teradatamlconnection.py", line 7, in <module>
td_context = create_context(host = hostname, logmech='LDAP', temp_database_name = schema)
File "C:\Users\UserID\AppData\Local\Programs\Python\Python36\lib\site-packages\teradataml\context\context.py", line 287, in create_context
_load_function_aliases()
File "C:\Users\UserID\AppData\Local\Programs\Python\Python36\lib\site-packages\teradataml\context\context.py", line 532, in _load_function_aliases
__set_vantage_version()
File "C:\Users\UserID\AppData\Local\Programs\Python\Python36\lib\site-packages\teradataml\context\context.py", line 562, in __set_vantage_version
if td_sqlalchemy_engine.dialect.has_table(td_sqlalchemy_engine, "versionInfo", schema="pm"):
AttributeError: 'NoneType' object has no attribute 'dialect'
我已尝试更新 teradatasqlalchemy 和 sqlalchemy 库,但我仍然遇到错误。显示满足所有要求:
PS C:\Python\dsssecurity> pip install teradatasqlalchemy --upgrade
Requirement already up-to-date: teradatasqlalchemy in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (16.20.0.8)
Requirement already satisfied, skipping upgrade: teradatasql in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradatasqlalchemy) (16.20.0.52)
Requirement already satisfied, skipping upgrade: sqlalchemy>=1.2.11 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradatasqlalchemy) (1.3.13)
Requirement already satisfied, skipping upgrade: pycryptodome in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradatasql->teradatasqlalchemy) (3.9.0)
PS C:\Python\dsssecurity> pip install teradataml --upgrade
Requirement already up-to-date: teradataml in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (16.20.0.4)
Requirement already satisfied, skipping upgrade: teradatasql in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradataml) (16.20.0.52)
Requirement already satisfied, skipping upgrade: pandas>=0.22 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradataml) (1.0.1)
Requirement already satisfied, skipping upgrade: psutil in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradataml) (5.6.3)
Requirement already satisfied, skipping upgrade: teradatasqlalchemy>=16.20.0.8 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradataml) (16.20.0.8)
Requirement already satisfied, skipping upgrade: pycryptodome in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradatasql->teradataml) (3.9.0)
Requirement already satisfied, skipping upgrade: numpy>=1.13.3 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from pandas>=0.22->teradataml) (1.18.1)
Requirement already satisfied, skipping upgrade: pytz>=2017.2 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from pandas>=0.22->teradataml) (2017.2)
Requirement already satisfied, skipping upgrade: python-dateutil>=2.6.1 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from pandas>=0.22->teradataml) (2.6.1)
Requirement already satisfied, skipping upgrade: sqlalchemy>=1.2.11 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from teradatasqlalchemy>=16.20.0.8->teradataml) (1.3.13)
Requirement already satisfied, skipping upgrade: six>=1.5 in c:\users\UserID\appdata\local\programs\python\python36\lib\site-packages (from python-dateutil>=2.6.1->pandas>=0.22->teradataml) (1.11.0)
对于 logmech='LDAP'
,您必须通过单独的属性或作为 logdata
字符串的一部分提供用户名和密码。
对于 logdata,字符串可以以任何格式 authcid=diruser password=dirpass
或只是 diruser password=dirpass
或 diruser@@dirpass
开头。如果有多个目录映射,那么您可以为要使用的数据库附加限定符 user= and/or profile=;如果有多个目录领域,您可以附加一个 realm= 限定符`