【问题标题】:Python reading Oracle pathPython读取Oracle路径
【发布时间】:2010-09-10 21:22:33
【问题描述】:

在我的桌面上,我编写了一个连接到 Oracle 的小型 Pylons 应用程序。我现在正在尝试将它部署到运行 Win2k3 x64 的服务器上。 (我的桌面是32位的XP)服务器上的Oracle安装也是64位的。

我在加载 OCI dll 时遇到错误,因此我将 32 位客户端安装到 C:\oracle32

如果我将它添加到 PATH 环境变量中,效果会很好。但我也想将 Pylons 应用程序作为服务 (using this recipe) 运行,并且不想将这个 32 位库放在所有其他应用程序的路径上。

我尝试使用sys.path.append("C:\\oracle32\\bin"),但这似乎不起作用。

【问题讨论】:

    标签: python oracle pylons cx-oracle


    【解决方案1】:

    sys.path 是 Python 对 PYTHONPATH 的内部表示,听起来你想修改 PATH。

    我不确定这是否可行,但您可以尝试:

    import os
    os.environ['PATH'] += os.pathsep + "C:\\oracle32\\bin"
    

    【讨论】:

    • r'C:\oracle32\bin' 可能会避免一些令人头疼的问题。
    • 是的,我认为 PYTHONPATH 是特定于 Python 的。这个答案很完美。我只需要确保在模型初始化之前添加了行。
    【解决方案2】:

    在执行 python.exe 之前,您需要将 c:\Oracle32\bin 目录附加到环境的 PATH 变量中。
    在 Linux 中,出于类似原因,我需要设置 LD_LIBRARY_PATH 变量,以在调用 python 之前找到 Oracle 库。我使用设置变量然后调用 Python 的包装器 shell 脚本。
    在您的情况下,也许您可​​以在服务启动中调用 .cmd 或 .vbs 脚本来设置 PATH 变量,然后使用您的 .py 脚本调用 python.exe。

    我希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      如果您的 Python 应用程序在 64 位空间中运行,您将需要访问 64 位安装的 Oracle oci.dll,而不是 32 位版本。通常,在运行脚本之前,您会更新系统路径以包含适当的 Oracle Home bin 目录。解决方案也可能会有所不同,具体取决于您用于从 Python 访问 Oracle 的组件。

      【讨论】:

        猜你喜欢
        • 2019-02-01
        • 2017-07-06
        • 1970-01-01
        • 2020-04-27
        • 1970-01-01
        • 2011-03-11
        • 2017-07-26
        • 2014-08-14
        • 2018-12-21
        相关资源
        最近更新 更多