[英]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 比從源代碼安裝要容易得多。
下載適合您的體系結構(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
。使用 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 文件)可以從這里下載。 使用 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 版本)
單擊安裝並將路徑設置為“基本”和“軟件”目錄
在這種情況下,“已安裝”目錄是基礎目錄,“軟件”目錄是軟件路徑
設置 ORACLE_HOME 路徑:
將 oracle 主路徑設置為 'software' 目錄為 'F:\softwares\oracle11g32\installed\software'
第 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'
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
注意:要求用戶使用 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
設置 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 環境。
一個一個地運行下面的所有命令來測試連接,注意最后一個 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.