1

如果我使用 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("Error loading cx_Oracle module: %s" % e)
TemplateSyntaxError: Caught ImproperlyConfigured while渲染:加载 cx_Oracle 模块时出错:DLL 加载失败:找不到指定的模块。

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

4

1 回答 1

1

也需要解决方案。

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

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

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