Pregunta

Estoy tratando de instalar el cx_Oracle para Python 2.6, pero está fallando. No sé lo suficiente sobre C o MS Vis. compilador de estudio para siquiera acercarse a la fijación yo mismo.

Esto es lo que se emite en la línea de comandos:

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 puede tener un problema con ese archivo cl.exe, creo que recuerdo ver esto como un problema a otro lugar, pero tengo cuatro máquinas de Windows que podría haber tenido problema allí.).

EDITAR ----------------------------- -------------- ---------------

La razón por la que no uso el instalador precompilado es porque cuando trato de ejecutar el módulo consigo el siguiente:

    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.

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

----------------------------- -------------- Edit2 ---------------

He recuperado todos archivos de versión de cliente básico de Oracle 11.1.0.7. No he probado la instalación de un cliente más sustancial. Estoy descargando una ahora.

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

Más información

  • El directorio actual para setup.py del cx_Oracle es C: \ pydev \ cx_Oracle-5.0.1
  • La versión de Python 2.6.3 es
  • El directorio actual para Python es C: \ Python26 - Acceso a Python 2.6 -> Tipo de py26 en la línea de comandos y se asignará a C: \ Python26 \ pitón
¿Fue útil?

Solución

¿Por qué no utilizar un paquete binario como Windows Installer (10g Oracle, Python 2.6) ?

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


Adición (según lo solicitado): debe asegurarse de utilizar el cx_Oracle que:

  • set ORACLE_HOME si no existe esta variable de entorno (ver este Oracle Preguntas )
  • pitón puede encontrar oraocci11.dll para Oracle 11g, oraocci10.dll para Oracle 10g o oraclient9.dll para Oracle 9i mediante la adición de la carpeta (debe ser% ORACLE_HOME% / bin) donde el DLL está en que la variable de entorno PATH
  • utilizar el paquete binario correcto (es decir, construido por el derecho versiones Python / Oracle)

Otros consejos

También es necesario algún tipo de cliente de Oracle instalado en su máquina, ya que cx_Oracle es sólo un puente entre Python y el cliente de Oracle. Los clientes de Oracle válidos incluyen una instalación completa de Oracle (como estándar o XE) o la instantánea rel="noreferrer">

Desde el README :

  

Tenga en cuenta que un cliente de Oracle (o   Se requiere servidor) en la instalación   Para utilizar cx_Oracle. Si no lo hace   requerir las herramientas que vienen con una   instalación completa del cliente, es   recomendada para instalar la instantánea   Cliente, que es mucho más fácil de instalar.

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

Si utiliza Anaconda Python x64, las cosas son más fácil :

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

(Se instalará el cliente de Oracle derecha)


Si se 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 <module>
    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>

Trate de ejecutar el símbolo del Anaconda como admin:

introducir descripción de la imagen aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top