只连接数据库的话不必安装客户端:
1. 把cx_Oracle的客户端文件复制到site-packages/ 目录下,可能是Python, Anaconda, venv下面的安装包里
2. 把下载的instantclient文件夹下的oci.dll, oraocci12.dll,oraociei12.dll文件复制到site-packages/ 目录下
3. 把instantclient文件解压后的地址添加到环境变量里面去。
4. 创建数据库连接.
注:oracle18和orcale12.2版本的需下载安装vs2013,否则报:
1、无法启动此程序,因为计算机丢失MSVCP120.dll,MSVCR120.dll
2、“64-bit Oracle Client library cannot be loaded: "The specified module could not be”
创建数据库连接connect和关闭数据库连接close
创建数据库连接的三种方式:
方法一:用户名、密码和监听分开写
import cx_Oracle
db=cx_Oracle.connect('username/password@host/orcl')
db.close()
方法二:用户名、密码和监听写在一起
import cx_Oracle
db=cx_Oracle.connect('username','password','host/orcl')
db.close()
方法三:配置监听并连接
import cx_Oracle
tns=cx_Oracle.makedsn('host',1521,'orcl')
db=cx_Oracle.connect('username','password',tns)
db.close()
python链接oracle数据库时报64-bit Oracle Client library cannot be loaded: "The specified module could not be found"错误
在使用pycharm对远程oracle数据库进行访问时(本地未安装oracle),会出现64-bit Oracle Client library cannot be loaded: "The specified module could not be found"的错误。
(1)首先要做的是按照网上有的下载对应版本的instantclient
下载地址:http://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/index.html
需要64位的就下载64位的,需要32位的就下载32位的,这次错误提示是需要64位的,所以我下载的是64位的。
(2)将解压后的instantclient路径添加到环境变量PATH中**
到文件夹即可
(3)在文件夹中创建名为‘ tnsnames.ora ’的文件,文件内容:
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP地址)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
IP地址和SERVICE_NAME可根据需要更改
(4)将文件夹下的oci.dll, oraocci12.dll,oraociei12.dll 拷贝到python安装目录下的lib/site-packages中**
(5)重启pycharm
重点来了,如果还报错,那就是你没有安装正确的vc++库。
检测方式是打开你的instantclient_xx_x,找到genezi.exe,点开看看是不是报"缺少msvcr120.dll"
如果是那你就得去下载vc++库了
下载地址是:
https://supp