一,想访问远程Oracle数据库,本地又不想安装几百兆的Oracle Client(也木有root权限),安装python的cx_Oralce 模块需要依赖Oracle Instant Client 代替完整的Oracle Client。

Oracle Instant Client 下载:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

下载:

  1. instantclient-basic-linux.x64-11.2.0.4.0.zip
  2. instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
  3. instantclient-sdk-linux.x64-11.2.0.4.0.zip

解压文件放到如下目录:

$HOME/oracle/instantclient_11_2

拷贝tnsnames.ora文件,在/home/oracle/instantclient_11_2目录下创建network/admin目录,并将tnsnames.ora文件拷贝进去(这个貌似不是必要条件,出了问题的话就补上吧)

~/.bashrc设置:

export ORACLE_HOME=$HOME/oracle/instantclient_11_2
export TNS_ADMIN=$ORACLE_HOME/network/admin
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$PATH

下面就是该安装cx_Oracle的python模块了,下载直接python setup.py install

由于非root的权限,会报无/lib64/python2.6/site-packages/目录读写权限

可以改写python的安装目录

export PYTHONPATH=$HOME/.local/lib64/python2.6/site-packages/
export PATH=$HOME/.local/bin:$PATH

然后source .bashrc生效

接下来可以安装了:python setup.py install --prefix=~/.local (牛逼闪闪啊,直接在原目录前加了个本地目录前缀,华丽丽的解决非root的壁垒)

顺其自然的又报错了(奔溃呀),/usr/bin/ld: cannot find -lclntsh

这个错误之前在mac上装cx_Oracle时候没遇到,百度解决方案,得知是没有找到lib下的libclntsh.so函数库

其实是有的,只不过名字改了,加软链接:

ln -s libclntsh.so.11.1 libclntsh.so

再次安装解决。

补充:

非root安装rpm包

首先把RPM包解压出来,然后放在自己的目录下,并且添加好环境变量
解压的命令为:
rpm2cpio ctags-5.8-2.el6.x86_64.rpm | cpio -idvm
这样就会按包里的目录结构解压到当前目录,如果是家目录的话,可以在家目录下的.bashrc这样添加环境变量

  1. vim ~/.bashrc
  2. export PATH=$PATH:$HOME/usr/bin/

重新登录或者source ~/.bashrc文件,就可以使用这个程序了

easy_install --prefix=~/.local cx_Oracle

卸载:

python setup.py install --record record.txt --prefix=~/.local
然后删除record.txt里的所有文件

贴段cx_Oracle 使用代码,作为备忘:

import cx_Oracle
class ConnectOracle:
def __init__(self, username, passwd, locate):
self.login = {}
self.db = None
self.cursor = None
self.login['username'] = username
self.login['passwd'] = passwd
self.login['locate'] = locate def connect_oracle(self):
try:
self.db = cx_Oracle.connect(self.login['username'], self.login['passwd'], self.login['locate']) # 登录内搜数据库
self.db.autocommit = False # 关闭自动提交
self.cursor = self.db.cursor() # 设置cursor光标
return True
except:
print 'can not connect oracle'
return False def close_oracle(self):
self.cursor.close()
self.db.close() def select_oracle(self, sql, num=0, temp=None):
if self.connect_oracle():
if temp:
self.cursor.executemany(sql, temp)
else:
self.cursor.execute(sql)
if num:
content = self.cursor.fetchmany(num)
else:
content = self.cursor.fetchall()
self.close_oracle()
return content
return False def insert_oracle(self, sql, temp=None):
try:
self.connect_oracle()
if temp:
self.cursor.executemany(sql, temp)
# 执行多条sql命令
else:
self.cursor.execute(sql)
except:
print "insert异常"
self.db.rollback() # 回滚
finally:
self.db.commit()
self.close_oracle()

二 安装mysql的操作模型:MySQLdb

先安装依赖程序:yum install python-devel mysql-devel zlib-devel openssl-devel

三 安装mysql的操作模型:Tornado

Tornado是非阻塞的开源的web服务器

下载安装地址http://www.tornadoweb.cn/

tar xvzf tornado-1.2.1.tar.gz
cd tornado-1.2.1
python setup.py build
sudo python setup.py install

四, ipython

IPYTHON=1 ./bin/pyspark

IPYTHON_OPTS="notebook"  ./bin/pyspark

python 安装cx_Oracle模块, MySQLdb模块, Tornado的更多相关文章

  1. Python 安装cx_Oracle模块

    1.Python安装cx_Oracle模块需要安装Oracle,并在环境变量中添加Oracle的路径. 2.没有安装Oracle的需要下载一个oci.dll的文件,并把文件的路径添加到path中. 如 ...

  2. Linux下查看Python安装了哪些脚本模块

    Linux下查看Python安装了哪些脚本模块 1.什么是rpm ? rpm 即RedHat Package Management,是RedHat的发明之一 .现在包括OpenLinux.fedora ...

  3. Python 安装requests和MySQLdb

    Python 安装requests和MySQLdb 2017年10月02日 0.系统版本 0.1 查看系统版本 [root@localhost ~]# uname -a Linux localhost ...

  4. python安装numpy科学计算模块

    解决两个问题: (1)Import Error: No module named numpy (2)Python version 2.7 required, which was not found i ...

  5. Python安装、卸载第三方模块

    pip command ModuleName command:用于指定要执行的命令(install:安装,uninstall:卸载) ModuleName:需要安装的模块名称 示例: 安装第三方模块n ...

  6. 22.Python安装和卸载第三方模块方法

    安装和卸载第三方开源模块的步骤:下例,安装urllib3模块的步骤. 1.安装开源模块步骤: 按键盘windows键+r键,输出cmd回车.或开始->windows系统->命令提示符: 输 ...

  7. Python安装cx_Oracle与操作数据测试小结

    这里简单总结一下Python操作Oracle数据库这方面的相关知识.只是简单的整理一下之前的实验和笔记.这里的测试服务器为CentOS Linux release 7.5. 个人实验.测试.采集数据的 ...

  8. Python 安装cx_Oracle模块折腾笔记

    kali linux/ubuntu下安装: 不得不说安装这个模块很蛋疼,决定做个记录. sudo apt install build-essential unzip python-dev libaio ...

  9. ubuntu下安装xlrd模块,Mysqldb模块

    Python中安装xlrd模块 1.从 https://pypi.python.org/pypi/xlrd  下载压缩包 2.解压所下载的压缩包 3.CD到解压文件夹,运行 sudo python s ...

随机推荐

  1. B1013 数素数(20分)

    B1013 数素数(20分) 令 \(P​_i\)表示第 i 个素数.现任给两个正整数 \(M≤N≤10^4\),请输出 \(P_M\)到 \(P_N\)的所有素数. 输入格式: 输入在一行中给出 M ...

  2. R语言分析朝阳医院数据

    R语言分析朝阳医院数据 本次实践通过分析朝阳医院2016年销售数据,得出“月均消费次数”.“月均消费金额”.“客单价”.“消费趋势”等结果,并据此作出可视化图形. 一.读取数据: library(op ...

  3. IOS开发---菜鸟学习之路--(九)-利用PullingRefreshTableView实现下拉刷新

    本章主要讲解如何利用PullingRefreshTableView实现下拉(上拉)刷新的操作 PullingRefreshTableView 实现上下拉刷新的例子百度有很多,大家可以自己搜索下,先看下 ...

  4. 【Generate Parentheses】cpp

    题目: Given n pairs of parentheses, write a function to generate all combinations of well-formed paren ...

  5. IOS开发学习笔记030-xib实现淘宝界面

    使用xib文件实现界面,然后通过模型更新数据. 1.使得控制器继承自UITableViewController 2.创建xib文件,实现界面如下:一个UIImageView,两个lable 3.新建一 ...

  6. python-day3-内置函数与字符字节之间的转换

    #三元运算 1 if True else 0 >>>1 1 if False else 0 >>>0 #内置函数lambda def f1(a1): return ...

  7. php字符串 函数

    strtolower()//字符串转化小写的字母 $str="abcdEfG";$s=strtolower($str); 输出:abcdefg; strtoupper();字符串转 ...

  8. PAT——乙级1001and1011

    准备明年年初考PAT,练题呀,暂且先把LeetCode放下. 我是按照算法笔记这个教材刷的. B1001 1001 害死人不偿命的(3n+1)猜想 (15 point(s)) 卡拉兹(Callatz) ...

  9. 微信小程序--问题汇总及详解之picker 增、删

    <block wx:for="{{salesList}}" wx:for-index="index" wx:key="id" wx:f ...

  10. 【bzoj1146】[CTSC2008]网络管理Network 倍增LCA+dfs序+树状数组+主席树

    题目描述 M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通信网络.该网络的结构由N个路由器和N-1条高 ...