1) 首先通过命令安装cx_Oracle
- pip install cx_Oracle
- 也可在pycharm里面安装,File->Default Setting ->Project Interpreter->添加cx_Oracle->Install package;
- 如果安装失败,点击Manage Repositories :更换仓库地址为:http://pypi.douban.com/simple/
- 去官网下载源码包:cx_Oracle-5.2.1.tar.gz;
- https://pypi.python.org/pypi/cx_Oracle/5.2.1#downloads
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 "<string>", line 1, in <module>
File "build/bdist.macosx-10.11-intel/egg/cx_Oracle.py", line 7, in <module>
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.1
Referenced from: /var/root/.python-eggs/cx_Oracle-5.2.1-py2.7-macosx-10.11-intel.egg-tmp/cx_Oracle.so
Reason: 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_Oracle
Using cached cx_Oracle-5.2.1.tar.gz
Installing collected packages: cx-Oracle
Running 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
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' #解决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()
学习链接:http://joelvasallo.com/?p=276
来源:oschina
链接:https://my.oschina.net/u/2263272/blog/799235