Aide pour l'installation cx_Oracle
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
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 ouoraclient9.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: