だから私は cx_Oracleのインストールを助ける を見つけましたが、それでも立ち往生しています。 Oracleから最新のInstantClientをダウンロードし、Oracle_HOMEを抽出されたファイルの場所(直接およびOracle_HOME値とファイルの間にbinフォルダーを含む)に設定しましたが、setup.pyを実行すると、easy_installでエラーが発生し、 t Oracleインクルードファイルを見つけます。 11g dllのみがフォルダーにあることに気付きましたが、セットアップを完了するために3つのドライバーがすべて必要ですか?その場合、どこで入手できますか?
正直なところ、cx_Oracleは、ソースからではなく バイナリインストーラー の1つからインストールする方がはるかに簡単です。
参照してください Linux x86のインスタントクライアントのダウンロードページ
ご使用のアーキテクチャー(32ビットまたは64ビット)に適合する基本パッケージ、sqlplusパッケージ、およびsdkパッケージの最新バージョンをダウンロードします。
Oracle-instantclient<version>-basic-<version_full>.<Arch>.rpm
Oracle-instantclient<version>-sqlplus-<version_full>.<Arch>.rpm
Oracle-instantclient<version>-devel-<version_full>.<Arch>.rpm
。Alienを使用して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
のインストールが必要になる場合があります。
Oracle Instant Client 10がインストールされていると仮定すると、インストールする別の方法があります cx_Oracle :
$ pip install cx_Oracle
(Linuxのみ)古いバージョン(5.1.2未満のバージョンは.msiおよび.rpmファイルです)は here からダウンロードできます。 alienを使用してRPMをインストールします。たとえば、この記事の執筆時点では、$ Sudo alien -i cx_Oracle-5.0-10g-py25-1.x86.rpm
テストするには、python -c 'import cx_Oracle; print cx_Oracle'
はモジュールとそのバージョンを返す必要があります。
ステップ1check python is 32 bit or 64
import platform
platform.architecture()[0]#'32bit'
または ステップ2Oracleクライアントをインストールします(32ビットまたは64ビットはpythonステップ1のバージョンに依存)
インストールをクリックし、パスを「ベース」および「ソフトウェア」ディレクトリに設定します
この場合、「インストール済み」ディレクトリがベースで、「ソフトウェア」ディレクトリはソフトウェアパス用です
oracle_HOMEパスを設定します。
oracleホームパスを「software」ディレクトリに「F:\ softwares\Oracle11g32\installed\software」として設定します
ステップ3python 2.7のvcforpython27またはVisual C++ 2008 Express Editionをインストールします
ここからダウンロード https://www.Microsoft.com/en-sa/download/details.aspx?id=44266 (この場合、全体のインストールを回避するためにこれを使用)下記のビジュアルc ++ 2008)
これは、python 2.7用のC++コンパイラを含む小さなパッケージです。
(または)
ビジュアルc ++ 2008エクスプレスエディション( https://www.Microsoft.com/en-sa/download/details.aspx?id=5582 )[約1 GBのインストール]
vcforpython27は「C:\ Users\Administrator\AppData\Local\Programs\Common\Microsoft」にインストールされます
これらのディレクトリ に対して、ウィンドウ内の隠しフォルダを表示できるようにします
'vcvarsall'バッチファイル を含むディレクトリを指す必要があります
%VS100COMNTOOL%をエコーして、cmdの正しいディレクトリを指しているかどうかを確認します
そして、以下の手順を実行します:(from: error:Unable to find 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はインストールに含まれています)。
install 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
注:ユーザーにOTN(Oracle techネットワークアカウント)による認証を要求します。
1.1。 「Instant Client Package-Basic」をC:\ Python27\Scripts\instantclient_11_2にダウンロードして解凍します。 instantclient-basic-windows.x64-11.2.0.4.0.Zip
1.2。 「Instant Client Package-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用に別の環境があります。
以下のコマンドを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',)