python 安装cx_Oracle模块, MySQLdb模块, Tornado
一,想访问远程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
下载:
instantclient-basic-linux.x64-11.2.0.4.0.zipinstantclient-sqlplus-linux.x64-11.2.0.4.0.zipinstantclient-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这样添加环境变量
vim ~/.bashrcexport 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的更多相关文章
- Python 安装cx_Oracle模块
1.Python安装cx_Oracle模块需要安装Oracle,并在环境变量中添加Oracle的路径. 2.没有安装Oracle的需要下载一个oci.dll的文件,并把文件的路径添加到path中. 如 ...
- Linux下查看Python安装了哪些脚本模块
Linux下查看Python安装了哪些脚本模块 1.什么是rpm ? rpm 即RedHat Package Management,是RedHat的发明之一 .现在包括OpenLinux.fedora ...
- Python 安装requests和MySQLdb
Python 安装requests和MySQLdb 2017年10月02日 0.系统版本 0.1 查看系统版本 [root@localhost ~]# uname -a Linux localhost ...
- python安装numpy科学计算模块
解决两个问题: (1)Import Error: No module named numpy (2)Python version 2.7 required, which was not found i ...
- Python安装、卸载第三方模块
pip command ModuleName command:用于指定要执行的命令(install:安装,uninstall:卸载) ModuleName:需要安装的模块名称 示例: 安装第三方模块n ...
- 22.Python安装和卸载第三方模块方法
安装和卸载第三方开源模块的步骤:下例,安装urllib3模块的步骤. 1.安装开源模块步骤: 按键盘windows键+r键,输出cmd回车.或开始->windows系统->命令提示符: 输 ...
- Python安装cx_Oracle与操作数据测试小结
这里简单总结一下Python操作Oracle数据库这方面的相关知识.只是简单的整理一下之前的实验和笔记.这里的测试服务器为CentOS Linux release 7.5. 个人实验.测试.采集数据的 ...
- Python 安装cx_Oracle模块折腾笔记
kali linux/ubuntu下安装: 不得不说安装这个模块很蛋疼,决定做个记录. sudo apt install build-essential unzip python-dev libaio ...
- ubuntu下安装xlrd模块,Mysqldb模块
Python中安装xlrd模块 1.从 https://pypi.python.org/pypi/xlrd 下载压缩包 2.解压所下载的压缩包 3.CD到解压文件夹,运行 sudo python s ...
随机推荐
- 11,scrapy框架持久化存储
今日总结 基于终端指令的持久化存储 基于管道的持久化存储 今日详情 1.基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的 ...
- Maya材质
mental ray--Indirect Lighting(物理学太阳天空) Final Gathering最终聚集 改变质量为production的,FG就是关闭需要重新打开 平行光, ...
- 4 Template层-验证码
1.验证码 在用户注册.登录页面,为了防止暴力请求,可以加入验证码功能,如果验证码错误,则不需要继续处理,可以减轻一些服务器的压力 使用验证码也是一种有效的防止crsf的方法 验证码效果如下图: 官网 ...
- Python虚拟机类机制之自定义class(四)
用户自定义class 在本章中,我们将研究对用户自定义class的剖析,在demo1.py中,我们将研究单个class的实现,所以在这里并没有关于继承及多态的讨论.然而在demo1.py中,我们看到了 ...
- loj2044 「CQOI2016」手机号码
ref #include <iostream> #include <cstring> #include <cstdio> using namespace std; ...
- Windows网络编程笔记5 -- 其他套接字
包括红外线套接字(IrSock).IPX/SPX 套接字.NetBIOS 套接字.AppleTalk 套接字.ATM 套接字等.对这些套接字进行简单介绍. 第一.红外线套接字(I r S o c k) ...
- ogre3D学习基础12 --- 让机器人动起来(移动模型动画)
学了那么长时间,才学会跑起来.My Ogre,动起来. 第一,还是要把框架搭起来,这里我们用到双端队列deque,前面已经简单介绍过,头文件如下: #include "ExampleAppl ...
- python矩阵和向量的转置问题
numpy有很多方法进行转置,这里由于时间和精力限制(主要是我实在比较懒,有一个基本上一直能使的,就懒得看其他的了),其他方法我没研究,这里我总结的东西,如果有问题,欢迎各路大佬拍砖 一.创建矩阵: ...
- github pages+阿里云域名绑定搭建个人博客
1.选择mast 配置cname 设置域名 同时在github设置里面进行绑定 2.获取github pages的ip地址 打开你的电脑的命令行工具,ping你的github地址,忽略"/& ...
- Linux下c++使用pthread库
pthread 库是纯c库,没有类指针的概念,当想phread_create中传递类成员函数时,就会报错,这里针对这种情况,对线程创建做了必要封装,较为简单,继承类,实现run接口,然后使用start ...