apache + mod_wsgi下的cx_Oracle 5.1.1

时间:2011-11-16 12:36:54

标签: python apache cx-oracle

如果我使用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:渲染时捕获不正确配置:加载cx_Oracle模块时出错:DLL加载失败:找不到指定的模块。

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

1 个答案:

答案 0 :(得分: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的最初补丁。