【问题标题】:cx_Oracle 5.1.1 under apache+mod_wsgiapache+mod_wsgi下的cx_Oracle 5.1.1
【发布时间】:2011-12-30 09:51:04
【问题描述】:

如果我使用 cx_Oracle 5.0.4,我可以从 python 控制台连接,并在 apache+django+mod_wsgi 下工作

但是当我更新 cx_Oracle 5.1.1 时,我可以从 python 控制台连接,但是相同的代码在 apache+django+mod_wsgi 下不起作用

文件“C:\Python27\lib\site-packages\django\db\backends\oracle\base.py”,第 24 行,在
raise ImproperlyConfigured("加载 cx_Oracle 模块时出错:%s" % e)
TemplateSyntaxError: Caught ImproperlyConfigured while rendering: E​​rror loading cx_Oracle module: DLL load failed: 找不到指定的模块。

PS:python 2.7
PSS:我已经安装了 MSVC 2008 Redistributable x86

【问题讨论】:

    标签: python apache cx-oracle


    【解决方案1】:

    也需要解决方案。

    我在 WinXP (Apache 2.2.21/ mod_wsgi 3.3/ python 2.7.2/ cx_Oracle 5.x.x) 上有相同的设置。我发现 cx_Oracle 5.1 也因同样的错误而失败。只有 5.0.4 有效。

    以下是从 5.0.4 到 5.1 的更改列表:

    1. 删除对 UNICODE 模式的支持并允许 Unicode 在 任何地方都可以传入一个字符串。这意味着字符串将是 使用 NLS_LANG 环境的值传递给 Oracle Python 3.x 中的变量也是如此。这样做消除了一堆问题 通过使用 UNICODE 模式发现的,并且还删除了不必要的 Python 2.x 中限制 Unicode 不能用于连接字符串 或 SQL 语句,例如。
    2. 增加了对通过命名类型创建空对象变量的支持, 添加完整对象支持的第一步。
    3. 增加了对 Python 3.2 的支持。
    4. 在 x86_64 系统上使用的 lib64 帐户。感谢 Alex Wood 提供 补丁。
    5. 在调用 cursor.close() 之前清除潜在问题 游标因超出范围而被释放。
    6. 避免 AIX5 上的编译困难,因为 OCIPing 似乎没有 在 Oracle 10g 第 2 版下的该平台上可用。感谢 Pierre-Yves Fontaniere 负责补丁。
    7. 在每次提取之前释放临时 LOB,以避免泄漏它们。 感谢 Uwe Hoffmann 提供的初始补丁。

    【讨论】:

    • 我无法理解一件小事,为什么 cx_Oracle 5.1.1 在控制台上工作正常,但在 apache+mod_wsgi 下不能工作,看起来 httpd.exe 和 python.exe 加载不同的库,如何查看文件夹?
    猜你喜欢
    • 2021-10-15
    • 2012-07-11
    • 2012-03-17
    • 1970-01-01
    • 2012-02-27
    • 2013-02-12
    • 2014-11-29
    • 2011-12-19
    • 2015-07-10
    相关资源
    最近更新 更多