帮助安装cx_Oracle

cwa*_*ole 22 python cx-oracle

我正在尝试为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
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?(我也可能有一个cl.exe文件的问题,我想我记得在其他地方看到这是一个问题,但我有四台可能有问题的Windows机器.).

-----------------------------编辑-------------------- ---------

我不使用预编译安装程序的原因是因为当我尝试运行模块时,我得到以下内容:

    Python 2.6.3 (r263rc1:75186, Oct  2 2009, 20:40:30) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import cx_Oracle
    Traceback (most recent call last):
      File "", line 1, in 
    ImportError: DLL load failed: The specified module could not be found.

我认为这意味着它没有正确安装.如果有人能告诉我这里做错了什么,这也是一个完全可以接受的答案.

----------------------------- EDIT2 -------------------- ---------

我从Oracle的Basic Client版本11.1.0.7中检索了所有文件.我没有尝试安装更实质的客户端.我现在正在下载一个.

%ORACLE_HOME%=C:\Oracle\instantclient\ #The directory where the above files have been extracted.
Run Code Online (Sandbox Code Playgroud)

更多信息

  • 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

小智 18

为什么不使用像Windows Installer这样的二进制包(Oracle 10g,Python 2.6)

有关其他二进制包,请参阅http://cx-oracle.sourceforge.net/


附录(根据要求):您必须确保使用以下cx_Oracle:

  • 如果此环境变量不存在,请设置ORACLE_HOME(请参阅此Oracle常见问题解答)
  • python可以找到oraocci11.dll适用于Oracle 11g,oraocci10.dll适用于Oracle 10g或oraclient9.dll适用于Oracle 9i的文件夹(应该是%ORACLE_HOME%/ bin),其中DLL位于PATH环境变量中
  • 使用正确的二进制包(即为正确的Python/Oracle版本构建)


Joh*_*ett 8

您还需要在您的计算机上安装某种类型的Oracle客户端,因为cx_Oracle只是Python和Oracle客户端之间的桥梁.有效的Oracle客户端包括完整的Oracle安装(如Standard或XE)或Instant Client

来自README:

请注意,要使用cx_Oracle,需要安装Oracle客户端(或服务器).如果您不需要完整客户端安装附带的工具,建议安装易于安装的Instant Client.

我以前没有在Windows上安装,但您可能必须设置ORACLE_HOME环境变量,以便cx_Oracle知道在哪里查找.