Ayuda para instalar cx_Oracle

Estoy intentando instalar cx_Oracle para Python 2.6, pero está fallando. No sé lo suficiente sobre C o MS Vis. El comstackdor de Studio incluso se acerca a arreglarlo yo mismo.

Esto es lo que se muestra en la línea de comando:

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 

¿Alguien tiene alguna idea de cómo solucionar este problema? (También puedo tener un problema con ese archivo cl.exe, creo que recuerdo haberlo visto como un problema en otra parte, pero tengo cuatro máquinas con Windows que podrían haber tenido problemas allí).

—————————– EDITAR ——————– ———

La razón por la que no uso el instalador precomstackdo es porque cuando bash ejecutar el módulo obtengo lo siguiente:

     Python 2.6.3 (r263rc1: 75186, 2 de octubre de 2009, 20:40:30) [MSC v.1500 32 bit (Intel)] en win32
     Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.
     >>> importar cx_Oracle
     Rastreo (llamadas recientes más última):
       Archivo "", línea 1, en 
     ImportError: Error en la carga de DLL: no se pudo encontrar el módulo especificado.

Supongo que eso significa que no se ha instalado correctamente. Si alguien me puede decir qué hice mal aquí, también sería una respuesta perfectamente aceptable.

—————————– EDIT2 ——————– ———

He recuperado todos los archivos de la versión 11.1.0.7 del Cliente Básico de Oracle . No he intentado instalar un cliente más sustancial. Estoy descargando uno ahora.

 %ORACLE_HOME%=C:\Oracle\instantclient\ #The directory where the above files have been extracted. 

Más información

  • El directorio actual para el setup.py de cx_Oracle es C: \ pydev \ cx_Oracle-5.0.1
  • La versión de Python es 2.6.3.
  • El directorio actual de Python es C: \ Python26: para acceder a python 2.6 -> escriba py26 en la línea de comandos y se asignará a C: \ python26 \ python

¿Por qué no utiliza un paquete binario como el instalador de Windows (Oracle 10g, Python 2.6) ?

Vea http://cx-oracle.sourceforge.net/ para otros paquetes binarios


Anexo (según se solicita): debe asegurarse de usar cx_Oracle que:

  • establezca ORACLE_HOME si esta variable de entorno no existe (consulte esta pregunta frecuente de Oracle )
  • python puede encontrar oraocci11.dll para Oracle 11g, oraocci10.dll para Oracle 10g u oraclient9.dll para Oracle 9i agregando la carpeta (debe ser% ORACLE_HOME% / bin) donde se encuentra la DLL en su variable de entorno PATH
  • use el paquete binario correcto (es decir, creado para las versiones correctas de Python / Oracle)

También necesita algún tipo de cliente Oracle instalado en su máquina, ya que cx_Oracle es solo un puente entre Python y el Cliente Oracle. Los clientes de Oracle válidos incluyen una instalación completa de Oracle (como Standard o XE) o Instant Client

Desde el README :

Tenga en cuenta que se requiere una instalación de cliente (o servidor) de Oracle para poder utilizar cx_Oracle. Si no necesita las herramientas que vienen con una instalación completa del cliente, se recomienda instalar el Instant Client, que es mucho más fácil de instalar.

No he instalado antes en Windows, pero es posible que tenga que configurar la variable de entorno ORACLE_HOME para que cx_Oracle sepa dónde buscar.

Si usas Anaconda Python x64, las cosas son más fáciles :

 conda install -c https://conda.anaconda.org/anaconda cx_oracle 

(Se instalará el cliente correcto de Oracle)


Si obtiene el siguiente error:

 [Anaconda2] C:\Users\User>conda install -c https://conda.anaconda.org/anaconda c x_oracle Using Anaconda Cloud api site https://api.anaconda.org Fetching package metadata: ...... Solving package specifications: ................. Package plan for installation in environment C:\Anaconda2: The following NEW packages will be INSTALLED: cx_oracle: 5.1.2-py27_0 oracle-instantclient: 11.2.0.4.0-0 The following packages will be UPDATED: conda: 3.19.1-py27_0 --> 4.0.5-py27_0 pip: 8.0.2-py27_0 --> 8.1.1-py27_0 pyyaml: 3.11-py27_2 --> 3.11-py27_3 setuptools: 19.6.2-py27_0 --> 20.3-py27_0 wheel: 0.26.0-py27_1 --> 0.29.0-py27_0 Proceed ([y]/n)? y Unlinking packages ... An unexpected error has occurred, please consider sending the | 0% following traceback to the conda GitHub issue tracker at: https://github.com/conda/conda/issues Include the output of the command 'conda info' in your report. Traceback (most recent call last): File "C:\Anaconda2\Scripts\conda-script.py", line 4, in  sys.exit(main()) File "C:\Anaconda2\lib\site-packages\conda\cli\main.py", line 173, in main args_func(args, p) File "C:\Anaconda2\lib\site-packages\conda\cli\main.py", line 180, in args_fun c args.func(args, p) File "C:\Anaconda2\lib\site-packages\conda\cli\main_install.py", line 45, in e xecute install.install(args, parser, 'install') File "C:\Anaconda2\lib\site-packages\conda\cli\install.py", line 423, in insta ll plan.execute_actions(actions, index, verbose=not args.quiet) File "C:\Anaconda2\lib\site-packages\conda\plan.py", line 538, in execute_acti ons inst.execute_instructions(plan, index, verbose) File "C:\Anaconda2\lib\site-packages\conda\instructions.py", line 148, in exec ute_instructions cmd(state, arg) File "C:\Anaconda2\lib\site-packages\conda\instructions.py", line 95, in UNLIN K_CMD install.unlink(state['prefix'], arg) File "C:\Anaconda2\lib\site-packages\conda\install.py", line 714, in unlink os.unlink(meta_path) WindowsError: [Error 5] Access is denied: 'C:\\Anaconda2\\conda-meta\\conda-3.19 .1-py27_0.json' [Anaconda2] C:\Users\User> 

Intente ejecutar el indicador de Anaconda como administrador:

introduzca la descripción de la imagen aquí