Python 3.x TNS:无法解析指定的连接标识符错误

Python 3.x TNS:无法解析指定的连接标识符错误,python-3.x,cx-oracle,Python 3.x,Cx Oracle,我正在尝试使用Python中的cx_Oracle连接到数据库。 我就是这样做的: connection = cx_Oracle.connect("user", "pass", "service") 我可以使用具有相同凭据的sql developer连接到db,但当我尝试从python连接时,会抛出错误: ORA-12154:TNS:无法解析连接标识符 指定的 我从另一个系统中尝试了同样的方法,我能够使用cx\u Oracle连接到数据库。两个系统中TNSNames.ora文件的内容完全相同 我

我正在尝试使用Python中的cx_Oracle连接到数据库。 我就是这样做的:

connection = cx_Oracle.connect("user", "pass", "service")
我可以使用具有相同凭据的sql developer连接到db,但当我尝试从python连接时,会抛出错误:

ORA-12154:TNS:无法解析连接标识符 指定的

我从另一个系统中尝试了同样的方法,我能够使用
cx\u Oracle
连接到数据库。两个系统中TNSNames.ora文件的内容完全相同

我删除了所有内容并重新安装,希望能够消除第一次可能犯下的错误,但我仍然面临同样的错误

请让我知道是否有任何办法来解决这个问题


谢谢。

您可以尝试改用EZ connect,也可以使用
cx\u Oracle.makedsn()
构建连接字符串。如果您提供tnsnames.ora文件的内容,我可以提供更详细的答案。

您可以尝试使用EZ connect,或者您可以使用
cx\U Oracle.makedsn()
构建连接字符串。如果您提供tnsnames.ora文件的内容,我可以提供更详细的答案。

我意识到出了什么问题。 数据库使用LDAP文件。在SQLNET.ORA文件中,没有提到LDAP,这导致了我的错误。
只需将LDAP添加到名称中。SQLNET.ORA中的目录路径就解决了这个问题。

我意识到出了什么问题。 数据库使用LDAP文件。在SQLNET.ORA文件中,没有提到LDAP,这导致了我的错误。
只需将LDAP添加到名称中即可解决此问题。

我尝试使用dsn\u tns=cx\u Oracle.makedsn('localhost','port',service\u name='service\u name')conn=cx\u Oracle.connect(user='user\u name',password='password',dsn=dsn\u tns),但仍然出现相同的错误。makedsn中使用的参数来自tnsnames.ora文件。我尝试使用dsn\u tns=cx\u Oracle.makedsn('localhost','port',service\u name='service\u name')conn=cx\u Oracle.connect(user='user\u name',password='password',dsn=dsn\u tns),但仍然得到相同的错误。makedsn中使用的参数来自tnsnames.ora文件。