だから私はcx_Oracleのインストールのヘルプを見つけましたが、それでも立ち往生しています。oracleから最新のinstantclientをダウンロードし、ORACLE_HOMEを抽出されたファイルの場所に設定しました(直接およびORACLE_HOME値とファイルの間にbinフォルダーがあります)が、setup.pyの実行時にeasy_installでエラーが発生します。 tOracleインクルードファイルを見つけます。11g dllのみがフォルダーにあることに気付きましたが、セットアップを完了するには3つのドライバーすべてが存在する必要がありますか?もしそうなら、どこで入手できますか?
4 に答える
正直なところ、ソースからではなく、所有しているバイナリインストーラーの1つからcx_Oracleをインストールする方がはるかに簡単です。
* nixのHOWTO:
Linuxx86用のインスタントクライアントのダウンロードページを参照します。
アーキテクチャに適合する最新バージョンの基本、sqlplus、およびsdkパッケージ(32ビットまたは64ビット)をダウンロードします。
oracle-instantclient<version>-basic-<version_full>.<arch>.rpm
oracle-instantclient<version>-sqlplus-<version_full>.<arch>.rpm
oracle-instantclient<version>-devel-<version_full>.<arch>.rpm
。
エイリアンを使用してRPMをインストールします。たとえば、この記事の執筆時点では、次のようになっています。
$ sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
必要な環境変数を追加します(私は個人的にそれを入れて
/etc/environment
からログオフ/バックインして環境をリロードしました):ORACLE_HOME=/usr/lib/oracle/<version>/client64/lib/ LD_LIBRARY_PATH=/usr/lib/oracle/<version>/client64/lib/
-
$ sudo ln -s /usr/include/oracle/<version>/client $ORACLE_HOME/include # for 32bits arch, OR $ sudo ln -s /usr/include/oracle/<version>/client64 $ORACLE_HOME/include # for 64bits arch
以下を作成
/etc/ld.so.conf.d/oracle-instantclient<version>-basic.conf
し、/etc/ld.so.conf.d/oracle.conf
(少なくとも12.1以降の最新バージョンの場合)以下を含みます。/lib /usr/lib/oracle/<version>/client/lib ; for 32bits arch, OR /usr/lib/oracle/<version>/client64/lib ; for 64bits arch
ldconfigキャッシュをリロードします(
-v
詳細が必要な場合はフラグを使用します):$ sudo ldconfig
をインストールする必要があるかもしれませんlibaio1
。
cx_Oracleをインストールする方法
Oracle Instant Client 10をインストールしたとすると、 cx_Oracleをインストールするためのさまざまな方法があります。
- pipでインストール:
$ pip install cx_oracle
(Linuxのみ) - cx_oraclePyPIサイトからinstaller/.tar.gzファイルをダウンロードします
古いバージョン(5.1.2未満のバージョンは.msiおよび.rpmファイル)はここからダウンロードできます。エイリアンを使用してRPMをインストールします。たとえば、この記事の執筆時点では、次のようになっています。
$ sudo alien -i cx_Oracle-5.0-10g-py25-1.x86.rpm
テストするにpython -c 'import cx_Oracle; print cx_Oracle'
は、モジュールとそのバージョンを返す必要があります。
ステップ1Pythonが32ビットまたは64であることを確認します
import platform
platform.architecture()[0]#'32bit'
または
ステップ2Oracleクライアントをインストールします(32ビットまたは64ビットはステップ1のPythonバージョンによって異なります)
- http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html(32ビットバージョンのリンク)からOracleクライアントをダウンロードします。zipファイルを1つのフォルダーにダウンロードして解凍します。
- この場合、zipファイルは「インストール」に抽出されます
-
インストールをクリックして、パスを「base」および「software」ディレクトリに設定します
- ソフトウェアディレクトリはベースディレクトリ内にある必要があります(推奨)
この場合、「インストール済み」ディレクトリはベースであり、「ソフトウェア」ディレクトリはソフトウェアパス用です
ORACLE_HOMEパスを設定します。
oracleホームパスを「software」ディレクトリに「F:\ software \ oracle11g32 \ installed\software」として設定します
- cmdで'echo%ORACLE_HOME%'をチェックして、パスが正しく設定されているかどうかを確認します
ステップ3Python2.7用のvcforpython27またはvisualc++ 2008ExpressEditionをインストールします
ここからダウンロードしてくださいhttps://www.microsoft.com/en-sa/download/details.aspx?id=44266(この場合、以下で説明するように、Visual C ++ 2008全体のインストールを回避するためにこれを使用します)
これは、Python2.7用のc++コンパイラを含む小さなパッケージです。
(または)
Visual C ++ 2008 Express Edition(https://www.microsoft.com/en-sa/download/details.aspx?id=5582)[約1GBのインストールになります]
vcforpython27は「C:\ Users \ Administrator \ AppData \ Local \ Programs \ Common\Microsoft」にインストールされます
- 「VS100COMNTOOLS」という名前の環境変数を「C:\ Users \ Administrator \ AppData \ Local \ Programs \ Common \ Microsoft \ Visual C ++ for Python\9.0」の値で設定します。
%VS100COMNTOOL%をエコーして、cmdで正しいディレクトリを指しているかどうかを確認します
そして、以下の手順を実行します:( from:エラー:vcvarsall.batが見つかりません)
C:/ Python27 / lib/distutilsファイルmsvc9compiler.pyに移動します。その中で関数find_vcvarsallを見つけて、次の変更を行います。次の行を置き換えます:productdir = os.path.join(toolsdir、os.pardir、os.pardir、 "VC")with productdir = os.path.join(toolsdir)この場合、vcvarsall.batが存在する場所です(チェック、ここで、vcvarsall.batはインストールに含まれています)。
cx_Oracleをインストールします
the easy step: pip install cx_oracle
上記のすべての手順を正しく実行すれば、機能するはずです。これを理解するのに多くの苦労がありました。お役に立てば幸いです。
実行をお勧めします:
pip install --upgrade setuptools
from : https://stackoverflow.com/questions/2667069/cannot-find-vcvarsall-bat-when-running-a-python-script
- oracleインスタントクライアントをダウンロードします(32ビットまたは64ビットアーキテクチャおよび適切なバージョンのOracle(10g、11g、12g)用)。 http://www.oracle.com/technetwork/topics/winx64soft-089540.html
注:ユーザーはOTN(oracle techネットワークアカウント)で認証する必要があります。
1.1。「InstantClientPackage-Basic」をダウンロードしてC:\ Python27 \ Scripts \instantclient_11_2に解凍します。例:instantclient-basic-windows.x64-11.2.0.4.0.zip
1.2。「インスタントクライアントパッケージ-SDK」をダウンロードしてC:\ Python27 \ Scripts \instantclient_11_2に解凍します。例:instantclient-sdk-windows.x64-11.2.0.4.0.zip
ORACLE_HOME = C:\ Python27 \ Scripts\instantclient_11_2を設定します
python -m pip install cx_Oracle
成功時の出力:
Collecting cx_Oracle
Using cached cx_Oracle-5.2.1.tar.gz
Building wheels for collected packages: cx-Oracle
Running setup.py bdist_wheel for cx-Oracle ... done
Stored in directory: C:\Users\m315468\AppData\Local\pip\Cache\wheels\7c\5f\96\ cd273c9b675bc7c28ae249b74d1f7df5d3eacba9e918715225
Successfully built cx-Oracle
Installing collected packages: cx-Oracle
Successfully installed cx-Oracle-5.2.1
苦労した後、私は以下の方法を見つけました。私はWindowsを使用していて、django用に別の環境を持っています。
- このリンクをたどって、Windowsセクションに移動します。Oracleの「InstantClientZip」の下に、必要なバージョンとビットに応じてzipファイルをダウンロードするための最初のステップが表示されます。zipファイルをダウンロードします。django2はOracle11をサポートしていないことに注意してください。
- Windowsでは、以下のフォルダ構造c:\ oracle\instantclient_12_2を作成します
- このフォルダの下にあるファイルを解凍します。
- [コントロールパネル]->[システム]->[システムの詳細設定]->[詳細設定]->[環境変数]->[システム変数]->[PATH]でPATHを設定します。インスタントクライアントディレクトリは、他のOracleディレクトリよりも前にPATHに含まれている必要があります。
- 他のコマンドプロンプトを開くか、現在のコマンドプロンプトを再起動します。
- コンダアクティベート
- Pythonと入力します
以下のすべてのコマンドを1つずつ実行して接続をテストします。最後のforループのインデントに注意してください。
import cx_Oracle connection = cx_Oracle.connect("your_username", "your_psw", "localhost/orcl") cursor = connection.cursor() cursor.execute("""select to_char(sysdate, 'dd-mon-yyyy') from dual""") for cdate in cursor: print("Today the date is ", cdate)
出力:
Today the date is ('08-nov-2019',)