Question

Je suis en train d'installer le cx_Oracle pour Python 2.6, mais il échoue. Je ne sais pas assez sur C ou MS Vis. compilateur Studio pour approcher même fixer moi-même.

est ce qui est sortie sur la ligne de commande:

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

Quelqu'un at-il une idée de comment résoudre ce problème? (Je peux aussi avoir un problème avec ce fichier cl.exe, je pense que je me souviens avoir vu cela comme un problème quelque part ailleurs, mais j'ai quatre machines Windows qui aurait pu problème là-bas.).

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

La raison pour laquelle je ne pas utiliser le programme d'installation pré-compilé est parce que lorsque je tente de lancer le module, je reçois le texte suivant:

    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.

Je suppose que cela signifie qu'il n'a pas été correctement installé. Si quelqu'un peut me dire ce que je fait de mal ici, ce serait aussi une réponse parfaitement acceptable.

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

Je l'ai récupéré tous les fichiers version du client de base Oracle 11.1.0.7. Je ne l'ai pas essayé d'installer un client plus important. Je télécharge un maintenant.

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

Plus d'informations

  • Le répertoire courant pour le setup.py du cx_Oracle est C: \ pydev \ cx_Oracle-5.0.1
  • La version de Python est 2.6.3
  • Le répertoire courant pour Python est C: \ Python26 - à python d'accès 2.6 -> py26 de type sur la ligne de commande et il la carte à C: \ Python26 \ python
Était-ce utile?

La solution

Pourquoi ne pas utiliser un paquet binaire comme Windows Installer (Oracle 10g, Python 2.6) ?

Voir http://cx-oracle.sourceforge.net/ pour d'autres paquets binaires


Addendum (tel que demandé): vous devez vous assurer d'utiliser le cx_Oracle que:

  • set ORACLE_HOME si cette variable d'environnement n'existe pas (voir cette Oracle FAQ )
  • python peut trouver oraocci11.dll pour Oracle 11g, oraocci10.dll pour Oracle 10g ou oraclient9.dll pour Oracle 9i en ajoutant le dossier (devrait être% ORACLE_HOME% / bin) où la DLL est en vous variable d'environnement PATH
  • utilisez le paquet binaire correct (à savoir construit pour les bonnes versions Python / Oracle)

Autres conseils

Vous devez également un certain type de client Oracle installé sur votre machine, car cx_Oracle est juste un pont entre Python et le client Oracle. Les clients valides Oracle comprennent une installation complète Oracle (comme standard ou XE) ou le instantanée client

De la README :

  

S'il vous plaît noter qu'un client Oracle (ou   serveur) l'installation est nécessaire   Pour utiliser cx_Oracle. Si tu ne le fais pas   exiger que les outils qui viennent avec une   installation complète du client, il est   recommandé d'installer Instant   Client qui est beaucoup plus facile à installer.

Je ne l'ai pas installé sur Windows avant, mais vous pouvez avoir à définir la variable d'environnement ORACLE_HOME afin que cx_Oracle sait où chercher.

Si vous utilisez x64 Anaconda Python, les choses sont plus facile :

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

(Il installera le droit client Oracle)


Si vous obtenez l'erreur suivante:

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

Essayez d'exécuter l'invite Anaconda admin:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top