摘要:并不是数据库驱动,访问数据的驱动是,但是这个驱动依赖于。所以如果想通过库访问数据库,那么需要先安装再安装最后安装。安装包的作用是在指定目录下存放头文件这些东西,如果安装不了,可以自己解压执行。
sqlalchemy并不是数据库驱动,python访问oracle数据的驱动是cx_Oracle,但是这个驱动依赖于Oracle instant client。所以python如果想通过sqlalchemy库访问oracle数据库,那么需要先安装Oracle instant client、再安装cx_Oracle、最后安装sqlalchemy。
搞了一圈下来,发现这个过程比较繁琐,现在的资料有些老旧,写篇文档和大家分享下。
http://www.oracle.com/technet...
我看的时候已经是版本 12.1.0.2.0 ,同一个版本下有很多包,支持cx_Oracle需要下载下面两个包
oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
简称basic、devel包
basic包含有所有的oracle client lib/bin 文件
devel包含了oracle client 外部接口的头文件
Oracle官方只提供了RPM包,我的操作系统是ubuntu,需要安装一个alien进行转换。
sudo install alien 就可以完成安装
用alien 将 RPM包转换成DEB包,
sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm sudo alien -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
然后安装deb包
sudo dpkg -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.deb sudo dpkg -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.deb
basic包安装成功后,在/usr/lib/oracle/12.1/client64/目录拷贝了lib、bin库,devel包安装后会/usr/lib/oracle/12.1/client64/目录下拷贝include头文件。
但是,我在用alien转devel RPM包时失败了,后来我就把RPM包解压,发现devel RPM包里面就是一些include文件,把这些文件拷贝到/usr/lib/oracle/12.1/client64/include目录,也能正常工作。
安装包的作用是在指定目录下存放bin、lib、include头文件这些东西,如果安装不了,可以自己解压执行。设置环境变量
设置环境变量的目的是为了让其它程序能找到安装的Oracle库
$ export ORACLE_HOME=/usr/lib/oracle/11.2/client64 $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib链接oracle库到系统目录
在 /etc/ld.so.conf.d 目录下创建 oracle.conf文件,在文件里面指定oracle库的路径/usr/lib/oracle/11.2/client64/lib
执行链接配置
$ sudo ldconfig安装cx_Oracle
安装libaio包,libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高,oracle SQLPlus库依赖它。
sudo apt-get install libaio1
所有准备工作完成后,执行包安装命令就可以成功安装cx_Oracle了
sudo apt-get install cx_Oracle
如果前期的准备工作没做好,会报各种安装失败,大家可以对照安装步骤,比对前面的操作是否正确。
安装sqlalchemy最后使用 sudo apt-get install sqlalchemy 就可以完成安装了
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38046.html
摘要:我们需要注意的是只有在数据库服务器端与客户端的编码一致的情况下我们才能正常的显示非编码而在中默认会将查询的字符串强制将其转换为。而正常的情况应该指定其编码为中国而设定就是相当于修改上述的编码为。 近期在项目中,要对1张100多万条记录的表进行查询,然后进行一些数据的统计,但是在这个过程中,发现只查询出来几条数据就出现了UnicodeDecodeError了。 在这里,我们使用sqla...
摘要:一般印象,项目适合做一些短小精悍的项目,特别是与等数据库结合很是般配。生成报表,不同的查询结果生成不同的报表。配置从下载客户端,然后解压后放入自己指定的目录。指定数据库连接池的超时时间。 一般印象,flask 项目适合做一些短小精悍的项目,特别是与 sqlite、mysql 等数据库结合很是般配。但是在一些大公司,特别是一些金融行业等国企公司,还是以 oracle 居多,那么,这个小辣...
阅读 3057·2021-11-23 10:09
阅读 2041·2021-10-26 09:51
阅读 952·2021-10-09 09:44
阅读 3875·2021-10-08 10:04
阅读 2727·2021-09-22 15:14
阅读 3561·2021-09-22 15:02
阅读 991·2021-08-24 10:03
阅读 1699·2019-12-27 12:14