python安装cx-oracle,macos下 python安装cx_oracle

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 "", 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.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值