ORA-12638: 凭据检索失败捆绑 Python( pyQt + cx_Oracle) 应用程序使用 pyinstaller for Windows

ORA-12638: Credential retrieval failed Bundling Python( pyQt + cx_Oracle) application using pyinstaller for Windows

我正在 Windows 上使用 pyQt 构建一个 GUI 应用程序,它使用 username/password@host_ip:port/db_name 等连接字符串查询 Oracle 数据库。现在,当我 运行 使用 python3 gui.py 的应用程序时,它可以工作,连接到主机并提取所需的信息,但是当我将其编译为 exe 时,它​​给了我臭名昭著的 ORA-12638.

我在网上搜索了解决方案,即:如何使用 pyinstaller 正确打包 cx_Oracle 应用程序并完成了以下操作:

  1. 将 InstantClient 和 Qt DLL 添加到路径
  2. 在与 exe 相同的文件夹中创建一个 tnsnames.ora

但无济于事。当我 运行 它使用 python3 gui.py 时,该程序完美运行,但在编译时不知何故中断。我错过了一些简单的东西吗?

我通过将 sqlnet.ora 文件的内容更改为

解决了我的问题

SQLNET.AUTHENTICATION_SERVICES = (NONE)

而不是

SQLNET.AUTHENTICATION_SERVICES = (NTS)

我打开的相应问题:https://github.com/oracle/python-cx_Oracle/issues/328