【发布时间】:2010-12-15 05:56:29
【问题描述】:
我正在尝试为 Python 2.6 安装 cx_Oracle,但它失败了。我对 C 或 MS Vis 知之甚少。 Studio 的编译器甚至可以自己修复它。
这是命令行上的输出:
C:\pydev\cx_Oracle-5.0.1>C:\python26\python setup.py install
running install
running build
running build_ext
building 'cx_Oracle' extension
C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Oracle\instantclient\sdk\include -IC:\p
ython26\include -IC:\python26\PC /Tccx_Oracle.c /Fobuild\temp.win32-2.6-11g\Release\cx_Oracle.obj -DBUILD_VERSION=5.0.1
cx_Oracle.c
c:\pydev\cx_oracle-5.0.1\StringVar.c(392) : warning C4018: '>' : signed/unsigned mismatch
c:\pydev\cx_oracle-5.0.1\StringVar.c(417) : warning C4018: '>' : signed/unsigned mismatch
c:\pydev\cx_oracle-5.0.1\ObjectVar.c(117) : warning C4018: '<' : signed/unsigned mismatch
c:\pydev\cx_oracle-5.0.1\ObjectVar.c(134) : warning C4018: '<' : signed/unsigned mismatch
c:\pydev\cx_oracle-5.0.1\Variable.c(331) : error C2036: 'void *' : unknown size
c:\pydev\cx_oracle-5.0.1\Variable.c(878) : warning C4244: '=' : conversion from 'sb2' to 'sb1', possible loss of data
c:\pydev\cx_oracle-5.0.1\Variable.c(914) : warning C4018: '<' : signed/unsigned mismatch
error: command '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' failed with exit status 2
有人知道如何解决这个问题吗? (我也可能对那个 cl.exe 文件有问题,我想我记得在其他地方看到过这个问题,但我有四台 Windows 机器可能在那里有问题。)。
-------------- 编辑 -------------- ---------------
我不使用预编译安装程序的原因是因为当我尝试运行该模块时,我得到以下信息:
Python 2.6.3 (r263rc1:75186, Oct 2 2009, 20:40:30) [MSC v.1500 32 bit (Intel)] on win32 输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。 >>> 导入 cx_Oracle 回溯(最近一次通话最后): 文件“”,第 1 行,在 ImportError:DLL 加载失败:找不到指定的模块。我认为这意味着它没有正确安装。如果有人能告诉我我在这里做错了什么,那也是一个完全可以接受的答案。
------------------ EDIT2 -------------- ---------------
我已从 Oracle's Basic Client 版本 11.1.0.7 中检索到 所有 个文件。我还没有尝试安装更重要的客户端。我正在下载一个。
%ORACLE_HOME%=C:\Oracle\instantclient\ #The directory where the above files have been extracted.
更多信息
- cx_Oracle 的 setup.py 的当前目录是 C:\pydev\cx_Oracle-5.0.1
- Python 版本为 2.6.3
- Python 的当前目录是 C:\Python26 -- 访问 python 2.6 -> 在命令行输入 py26 会映射到 C:\python26\python
【问题讨论】:
-
编译器中的错误只是警告,不应该停止构建 - 是否还有其他错误(仍然使用预构建的错误,因为我怀疑您最终会遇到相同的问题)
-
对于预建的 - 你的路径是什么,你的 cx_oracle 和 oracle DLLS 安装在哪里
-
在安装预构建的 cx_oracle 后,我必须将 Instantclient 目录添加到 PATH 变量中才能使 python 脚本正常工作