簡體   English   中英

在 Windows 上輕松安裝 cx_Oracle(python 包)

[英]easy_install cx_Oracle (python package) on Windows

所以我找到了安裝 cx_Oracle 的幫助,但仍然卡住了。 我從 oracle 下載了最新的 instantclient,並將 ORACLE_HOME 設置為提取文件的位置(直接和在 ORACLE_HOME 值和文件之間有一個 bin 文件夾),但是 easy_install 在運行 setup.py 時彈出錯誤說它不能'找不到 Oracle 包含文件。 我確實注意到文件夾中只有 11g dll,我是否需要所有 3 個驅動程序才能完成安裝? 如果是這樣,我什至從哪里得到它們?

老實說,從他們擁有的二進制安裝程序之一安裝 cx_Oracle 比從源代碼安裝要容易得多。

*nix 的指南:

  1. 瀏覽至Instant Client for Linux x86 下載頁面。

  2. 下載適合您的體系結構(32 位或 64 位)的最新版本的 basic、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
  3. 使用 alien 安裝 RPM。 例如,在撰寫本文時:

     $ sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
  4. 添加必要的環境變量(我個人確實把它放在/etc/environment然后注銷/返回以重新加載環境):

     ORACLE_HOME=/usr/lib/oracle/<version>/client64/lib/ LD_LIBRARY_PATH=/usr/lib/oracle/<version>/client64/lib/
  5. 修復 oracle 的包括

     $ 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
  6. 創建/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
  7. 重新加載 ldconfig 緩存(如果你想要一些冗長的話,使用-v標志):

     $ sudo ldconfig

您可能需要安裝libaio1

如何安裝 cx_Oracle

假設我們已經安裝了 Oracle Instant Client 10,您可以使用不同的方法來安裝cx_Oracle

  1. 使用pip安裝: $ pip install cx_oracle (僅限 Linux)
  2. cx_oracle PyPI站點下載 installer/.tar.gz 文件

舊版本(低於 5.1.2 的版本是.msi 和.rpm 文件)可以從這里下載。 使用 alien 安裝 RPM。 例如,在撰寫本文時: $ sudo alien -i cx_Oracle-5.0-10g-py25-1.x86.rpm

要測試, python -c 'import cx_Oracle; print cx_Oracle' python -c 'import cx_Oracle; print cx_Oracle'應該返回模塊及其版本。

第 1 步檢查 python 是 32 位還是 64 位

import platform
platform.architecture()[0]#'32bit'

要么在此處輸入圖像描述 步驟 2安裝 oracle 客戶端(32 位或 64 位取決於步驟 1 中的 python 版本)

  • http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html(32位版本的鏈接)下載 oracle 客戶端下載並解壓縮一個文件夾中的 zip 文件
  • 在這種情況下,zip 文件被提取到“安裝”
  • 該目錄將如下所示在此處輸入圖像描述

    • 單擊安裝並將路徑設置為“基本”和“軟件”目錄

      • 軟件目錄應該在基本目錄中(推薦)
      • 在這種情況下,“已安裝”目錄是基礎目錄,“軟件”目錄是軟件路徑

      • 設置 ORACLE_HOME 路徑:

      • 將 oracle 主路徑設置為 'software' 目錄為 'F:\softwares\oracle11g32\installed\software'

      • 在 cmd 中檢查 'echo %ORACLE_HOME%' 以查看路徑是否設置正確

第 3 步安裝 vcforpython27 或 visual c++ 2008 express edition for python 2.7

  • 從這里下載它https://www.microsoft.com/en-sa/download/details.aspx?id=44266 (在這種情況下使用它來避免安裝整個 visual c++ 2008,如下所述)

  • 它是一個包含 python 2.7 的 c++ 編譯器的小包

  • (要么)

  • visual c++ 2008 Express Edition ( https://www.microsoft.com/en-sa/download/details.aspx?id=5582 ) [安裝大約 1 GB]

  • vcforpython27 將安裝在 'C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft'

  • 啟用在 Windows 中顯示隱藏文件夾到這些目錄在此處輸入圖像描述

  • 設置名稱為“VS100COMNTOOLS”的環境變量,值為“C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0”
  • 它應該指向包含“vcvarsall”批處理文件的目錄在此處輸入圖像描述

  • echo %VS100COMNTOOL% 查看是否指向cmd中的正確目錄

  • 並執行以下步驟:(來自: 錯誤:無法找到 vcvarsall.bat

  • 轉到 C:/Python27/lib/distutils 文件 msvc9compiler.py。 在其中找到函數 find_vcvarsall 並進行如下修改。 將行:productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC") 替換為 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
  1. 下載 oracle 即時客戶端(適用於 32 位或 64 位架構師和相應版本的 Oracle(10g、11g、12g))。 http://www.oracle.com/technetwork/topics/winx64soft-089540.html

注意:要求用戶使用 OTN(Oracle 技術網絡帳戶)進行身份驗證。

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 eg instantclient-sdk-windows.x64-11.2.0.4.0.zip

  1. 設置 ORACLE_HOME=C:\Python27\Scripts\instantclient_11_2

  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. 點擊此鏈接並轉到 Windows 部分。 現在在 Oracle“Instant Client Zip”下,您將看到根據您需要的版本和位下載 zip 文件的第一步。 下載 zip 文件。記住 django 2 不支持 Oracle 11。
  2. 在 Windows 上創建以下文件夾結構 c:\oracle\instantclient_12_2
  3. 將文件解壓縮到該文件夾下。
  4. 在控制面板 -> 系統 -> 高級系統設置 -> 高級 -> 環境變量 -> 系統變量 -> PATH 中設置 PATH。 Instant Client 目錄必須位於任何其他 Oracle 目錄之前的 PATH 中。
  5. 打開其他命令提示符或重新啟動當前命令提示符。
  6. 康達激活
  7. 鍵入 python
  8. 一個一個地運行下面的所有命令來測試連接,注意最后一個 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',)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM