cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library

pip install cx_Oracle

import cx_Oracle

再导入该模块进行数据库连接的时候报错

这个错误表明您的Python环境是64位的,但是您尝试使用的Oracle客户端库(oci.dll)是32位的

根据官方给出的文档进行查看

cx_Oracle 8 Installation --- cx_Oracle 8.3.0 documentationhttps://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html

cx_Oracle模块加载Oracle客户端库, 通过Oracle Net连接到现有数据库。 Oracle Net不是一个独立的 产品:它是Oracle客户端和Oracle数据库通信的方式。

要解决这个问题,需要确保以下几点:

  1. Python 解释器的位数 :确认你使用的 Python 解释器是 64 位的。你可以通过运行 python -c "import struct; print(struct.calcsize('P') * 8)" 来检查。如果输出是 64,那么你的 Python 解释器是 64 位的。

  2. Oracle 客户端库的位数:你需要安装与 Python 解释器相同位数的 Oracle 客户端库。如果你使用的是 64 位的 Python,那么你也需要安装 64 位的 Oracle 客户端库。

  3. 环境变量:确保 Oracle 客户端库的路径已经添加到你的环境变量中,特别是 PATH 变量。这样,当 cx_Oracle 尝试连接时,它可以找到正确的 DLL 文件。

  4. cx_Oracle 的版本:确保你安装的 cx_Oracle 版本与你的 Python 版本和 Oracle 客户端库版本兼容。

针对以上情况,可以尝试以下步骤:

  • 卸载现有的 Oracle 客户端库(如果是 32 位的)。
  • 从 Oracle 官方网站下载并安装与你的 Python 解释器相匹配的 64 位 Oracle 客户端库。
  • 安装或更新 cx_Oracle,确保它与你的 Python 版本和 Oracle 客户端库版本兼容。
  • 更新你的环境变量,确保 PATH 中包含了 Oracle 客户端库的路径。

完成上述步骤后,重新运行 Python 脚本,问题解决。

下载地址:

Oracle Instant Client Downloads | Oracle 中国

相关推荐
这孩子叫逆10 分钟前
6. 什么是MySQL的事务?如何在Java中使用Connection接口管理事务?
数据库·mysql
Karoku06614 分钟前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
码农郁郁久居人下40 分钟前
Redis的配置与优化
数据库·redis·缓存
FreakStudio44 分钟前
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
python·嵌入式·面向对象·电子diy
MuseLss2 小时前
Mycat搭建分库分表
数据库·mycat
redcocal2 小时前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
Hsu_kk2 小时前
Redis 主从复制配置教程
数据库·redis·缓存
DieSnowK2 小时前
[Redis][环境配置]详细讲解
数据库·redis·分布式·缓存·环境配置·新手向·详细讲解
程序猿小D2 小时前
第二百三十五节 JPA教程 - JPA Lob列示例
java·数据库·windows·oracle·jdk·jpa
artificiali2 小时前
Anaconda配置pytorch的基本操作
人工智能·pytorch·python