web-dev-qa-db-ja.com

cx_Oracleのインストールに役立つ

Python 2.6用にcx_Oracleをインストールしようとしていますが、失敗しました。CまたはMS Vis。Studioのコンパイラについて、自分で修正する方法すら十分に知りません。

これはコマンドラインに出力されるものです:

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

誰かがこれを修正する方法を知っていますか? (また、そのcl.exeファイルに問題がある可能性があります。これを別の場所で問題として見たのを覚えていると思いますが、問題があった可能性のある4台のWindowsマシンがあります。).

-----------------------------編集----------- ------------------

プリコンパイルされたインストーラーを使用しない理由は、モジュールを実行しようとすると次のようになるためです。

 Python 2.6.3(r263rc1:75186、Oct 2 2009、20:40:30)[MSC v.1500 32ビット(Intel)] on win32 
詳細については、「help」、「copyright」、「credits」、または「license」と入力してください。
 >>> import cx_Oracle 
 Traceback(last the last call last):
 File 「」、1行目
 ImportError:DLLロード失敗:指定されたモジュールが見つかりませんでした。

私はそれが正しくインストールされていないことを意味すると思います。私がここで間違ったことを誰かが教えてくれれば、それも完全に許容できる答えです。

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

Oracleの基本クライアント バージョン11.1.0.7からすべてのファイルを取得しました。私はもっ​​と充実したクライアントをインストールしようとしませんでした。現在ダウンロードしています。

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

詳しくは

  • Cx_Oracleのsetup.pyの現在のディレクトリはC:\ pydev\cx_Oracle-5.0.1です
  • Pythonのバージョンは2.6.3です。
  • Pythonの現在のディレクトリはC:\ Python26です-アクセスするにはpython 2.6->コマンドラインでpy26と入力すると、C:\にマッピングされますpython26\python
22
cwallenpoole

Windowsインストーラ(Oracle 10g、Python 2.6) のようなバイナリパッケージを使用しないのはなぜですか。

他のバイナリパッケージについては http://cx-Oracle.sourceforge.net/ を参照してください


補遺(要求に応じて):次のことを行うcx_Oracleを使用する必要があります。

  • この環境変数が存在しない場合はOracle_HOMEを設定します(これを参照 Oracle FAQ
  • pythonは、Oracle 11gの場合はoraocci11.dll、Oracle 10gの場合はoraocci10.dll、Oracle 9iの場合はoraclient9.dllを見つけることができます。ここで、DLLはPATH環境変数にあります
  • 正しいバイナリパッケージを使用する(つまり、適切なPython/Oracleバージョン用にビルドされている)
18
user180100

また、cx_OracleはPythonとOracleクライアントの間の架け橋にすぎません。有効なOracleクライアントには、完全なOracleインストール(StandardやXEなど)が含まれています)または インスタントクライアント

[〜#〜] readme [〜#〜] から:

Cx_Oracleを使用するには、Oracleクライアント(またはサーバー)のインストールが必要です。フルクライアントインストールに付属するツールが不要な場合は、インストールがはるかに簡単なインスタントクライアントをインストールすることをお勧めします。

私は以前にWindowsにインストールしたことがありませんが、cx_Oracleが参照先を認識できるように、Oracle_HOME環境変数を設定する必要がある場合があります。

8
John Paulett

Anaconda Python x64を使用する場合、物事は 簡単 です:

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

(適切なOracleクライアントがインストールされます)


次のエラーが発生した場合:

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

Anacondaプロンプトを管理者として実行してみてください:

enter image description here

3