3.2.2 python連線oracle

weixin_30924079發表於2020-04-04

pip3 install cx_oracle

 

 

macos下 python安裝cx_oracle

1) 首先通過命令安裝cx_Oracle


(1)pip installcx_Oracle

sys.path.append(' /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages')


(2)也可在pycharm裡面安裝,File->Default Setting ->Project Interpreter->新增cx_Oracle->Install package;


如果安裝失敗,點選Manage Repositories :更換倉庫地址為:http://pypi.douban.com/simple/


(3)去官網下載原始碼包:cx_Oracle-5.2.1.tar.gz;


/2014th7cj/d/file/p/20161205/hzktkrgmnj2.1 

2)去oracle官網下載mac版的64bit的client basic 和client sdk


http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html

3)編譯安裝:


sudo su #切換到root使用者


mkdir /Users/guanguan/oracle #建立oracle檔案


mv /Users/guanguan/Downloads/instantclient-* /Users/guanguan/oracle #將下載的兩個Oracle包放到/Users/guanguan/oracle目錄下


cd /Users/guanguan/oracle 進入oracle檔案中


unzip instantclient-basic-macos.64-12.1.0.4.0.zip #解壓


unzip instantclient-sdk-macos.64-12.1.0.4.0.zip #解壓


cd instantclient_12_1/sdk


unzip ottclasses.zip


cd ..


cp -R ./sdk/* .


cp -R ./sdk/include .


ln -s libocci.dylib.12.1 libocci.dylib


ln -s libclntsh.dylib.12.1 libclntsh.dylib


4)更改環境變數:


vi ~/.bash_profile


export ORACLE_HOME=/Users/guanguan/oracle/instantclient_12_1


export DYLD_LIBRARY_PATH=$ORACLE_HOME


export LD_LIBRARY_PATH=$ORACLE_HOME


然後輸入source ~/.bash_profile 或者 . ~/.bash_profile使環境變數生效


5)測試環境變數是否生效


echo $ORACLE_HOME


/Users/guanguan/oracle/instantclient_12_1


6)然後解壓安裝cx_Oracle:


tar -zxvf cx_Oracle-5.2.1.tar.gz


cd cx_Oracle-5.2.1


python setup.py build


python setup.py install


7)測試cx_Oracle安裝是否成功


python


import cx_Oracle


#執行結果結果:


➜ ~ python Python 2.7.10 (default, Oct 23 2015, 19:19:21) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import cx_Oracle >>>


或者 python -c "import cx_Oracle"


➜ ~ python -c "import cx_Oracle" ➜ ~


此時說明已經安裝成功啦~


報錯資訊:


sh-3.2# python -c "import cx_Oracle" /Library/Python/2.7/site-packages/cx_Oracle-5.2.1-py2.7-macosx-10.11-intel.egg/cx_Oracle.py:3: UserWarning: Module cx_Oracle was already imported from /Library/Python/2.7/site-packages/cx_Oracle-5.2.1-py2.7-macosx-10.11-intel.egg/cx_Oracle.pyc, but /Users/guanguan/oracle/cx_Oracle-5.2.1 is being added to sys.path Traceback (most recent call last):File "", line 1, in File "build/bdist.macosx-10.11-intel/egg/cx_Oracle.py", line 7, in File "build/bdist.macosx-10.11-intel/egg/cx_Oracle.py", line 6, in __bootstrap__ ImportError: dlopen(/var/root/.python-eggs/cx_Oracle-5.2.1-py2.7-macosx-10.11-intel.egg-tmp/cx_Oracle.so, 2): Library not loaded: @rpath/libclntsh.dylib.12.1Referenced from: /var/root/.python-eggs/cx_Oracle-5.2.1-py2.7-macosx-10.11-intel.egg-tmp/cx_Oracle.soReason: image not found

解決方法:(刪除之前安裝的cx_Oracle,設定export FORCE_RPATH=TRUE,重新安裝cx_Oracle)


sh-3.2# export FORCE_RPATH=TRUE sh-3.2# pip install cx_Oracle Requirement already satisfied: cx_Oracle in /Library/Python/2.7/site-packages/cx_Oracle-5.2.1-py2.7-macosx-10.11-intel.egg sh-3.2# cd /Library/Python/2.7/site-packages/ sh-3.2# rm -f cx_Oracle-5.2.1-py2.7-macosx-10.11-intel.egg sh-3.2# pip install cx_Oracle Collecting cx_OracleUsing cached cx_Oracle-5.2.1.tar.gz Installing collected packages: cx-OracleRunning setup.py install for cx-Oracle ... done Successfully installed cx-Oracle-5.2.1


sh-3.2# python Python 2.7.10 (default, Oct 23 2015, 19:19:21) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import cx_Oracle >>> exit()

==========================================


python對cx_Oracle的簡單操作:


#! /usr/bin/python
import cx_Oracle
dsnStr = cx_Oracle.makedsn("127.0.0.1", "1521", "orcl")
conn = cx_Oracle.connect(user="test", password="test", dsn=dsnStr)
c=conn.cursor()
x=c.execute('select *from TEST.TEST p WHERE ID<2')
print (x.fetchone())
c.close()
conn.close() 
 

轉載於:https://www.cnblogs.com/beallaliu/p/9311028.html

相關文章