【问题标题】:Cx_Oracle and PyinstallerCx_Oracle 和 Pyinstaller
【发布时间】:2021-01-08 05:28:41
【问题描述】:

我已经使用 pyinstaller 打包了一个可执行文件,它在我的机器上运行良好。但是,当我共享可执行文件并尝试在另一台机器上运行它并且应用程序尝试运行查询时,会返回以下错误消息:

ora-12154 tns 无法解析指定的连接标识符

我假设目标机器上的 TNSNAMES.ORA 中没有列出指定的 oracle 服务。有没有人找到将其包含在 pyinstaller 可执行文件创建中的方法,或者甚至是一种选择?

【问题讨论】:

    标签: pyinstaller cx-oracle


    【解决方案1】:

    您不必将 TNSNAMES.ORA 与 cx_Oracle 一起使用,您可以指定一个完整的连接字符串。如果这对你有用,那将消除依赖。

    如果出于某种原因您必须使用 TNSNAMES.ORA,那么您可以在您的应用程序中包含一个实用程序来查找该文件并为其添加一个条目。 Py 安装程序确实允许您使用 --add-data 将文件与您的应用程序捆绑在一起,但我认为您无法使用此方法将 TNSNAMES.ORA 放在正确的位置(如果可以的话,它会覆盖现有文件这可能会让您的用户感到烦恼)

    【讨论】:

    【解决方案2】:

    使用下面的代码作为我的连接字符串的一部分在给出 ora-12154 错误消息的同一台机器上工作。

    导入 cx_Oracle

    CONN_INFO = { '主机': 'xxx.xx.xxx.x', “端口”:12345, “用户”:“用户名”, 'psw': '你的密码', '服务': 'abc.xyz.com', }

    CONN_STR = '{user}/{psw}@{host}:{port}/{service}'.format(**CONN_INFO)

    连接 = cx_Oracle.connect(CONN_STR)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-16
      • 2010-10-26
      • 2013-12-29
      • 2015-12-09
      • 2014-03-28
      • 2015-05-20
      • 1970-01-01
      • 2022-07-11
      相关资源
      最近更新 更多