Domanda

Sto cercando di installare il cx_Oracle per Python 2.6, ma si sta venendo a mancare. Io non so abbastanza di C o MS Vis. compilatore di Studio di avvicinarsi ancora di fissaggio io stesso.

Questo è ciò che è uscita dalla linea di 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

Qualcuno ha qualche idea di come risolvere questo problema? (Ho anche possa avere un problema con quel file cl.exe, penso Ricordo di aver visto questo come un problema da qualche altra parte, ma ho quattro macchine Windows che potrebbe aver avuto problema lì.).

----------------------------- EDIT -------------- ---------------

Il motivo per cui io non uso il programma di installazione di pre-compilato è perché quando provo a fare funzionare il modulo ottengo il seguente:

    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.

Suppongo che significa che non è stato installato correttamente. Se qualcuno può dirmi che cosa ho fatto di sbagliato qui, che sarebbe anche una risposta perfettamente accettabile.

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

Ho recuperato tutti i file di client di base di Oracle versione 11.1.0.7. Non ho provato l'installazione di un client più sostanziale. Sto scaricando uno ora.

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

Maggiori informazioni

  • La directory corrente per setup.py del cx_Oracle è C: \ pydev \ cx_Oracle-5.0.1
  • La versione di Python è 2.6.3
  • La directory corrente per Python è C: \ Python26 - per l'accesso Python 2.6 -> tipo py26 sulla riga di comando e sarà mappare in C: \ Python26 \ python
È stato utile?

Soluzione

Perché non si utilizza un pacchetto binario come Windows Installer (Oracle 10g, Python 2.6) ?

http://cx-oracle.sourceforge.net/ per altri pacchetti binari


Addendum (come richiesto): è necessario assicurarsi di utilizzare la cx_Oracle che:

  • impostare ORACLE_HOME se questa variabile di ambiente non esiste (si veda questo Oracle FAQ )
  • Python può trovare oraocci11.dll per Oracle 11g, oraocci10.dll per Oracle 10g o oraclient9.dll per Oracle 9i con l'aggiunta della cartella (dovrebbe essere% ORACLE_HOME% / bin), dove la DLL è in voi variabile d'ambiente PATH
  • utilizzare il pacchetto binario corretto (vale a dire costruito per le versioni destra Python / Oracle)

Altri suggerimenti

È inoltre necessario un qualche tipo di client Oracle installato sulla vostra macchina, dal momento che cx_Oracle è solo un ponte tra Python e il client Oracle. Validi clienti Oracle includono un'installazione completa di Oracle (come standard o XE) o il istantanea Cliente

README :

  

Si prega di notare che un client Oracle (o   server) l'installazione è necessario   Per poter utilizzare cx_Oracle. Se non   richiedere gli strumenti che vengono con un   installazione client completo, è   consiglia di installare l'istantanea   Cliente, che è molto più facile da installare.

Non ho installato su Windows prima, ma potrebbe essere necessario impostare la variabile d'ambiente ORACLE_HOME in modo che cx_Oracle sa dove guardare.

Se si utilizza Anaconda Python x64, le cose sono facile :

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

(Si installerà il diritto client Oracle)


Se si ottiene il seguente errore:

[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>

Provare a eseguire il prompt Anaconda come admin:

entrare descrizione dell'immagine qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top