cx_Oracle.DatabaseError: DPI-1047

本文详细介绍了在Linux (Red Hat) 系统上安装Oracle数据库客户端的具体步骤,包括下载客户端、解压缩、安装依赖库及配置环境变量等关键操作。

这就是没安数据库客户端。照着后面的提示安下就行了。

网址:https://oracle.github.io/odpi/doc/installation.html#linux 


比如我的llinux(red_hat)安装

1.下载一个客户端,需要注册:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

不想注册点这个下载 :只是linux的

2.解压

mkdir -p /opt/oracle
cd /opt/oracle
unzip instantclient-basic-linux.x64-12.2.0.1.0.zip

3.环境安装,

sudo yum install libaio

4. 加入环境变量,设置beimpacted

sudo sh -c "echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig
export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH

完成。测试效果。。。


### 解决方案 `cx_Oracle.DatabaseError: DPI-1047` 错误表明无法找到所需的 64 位 Oracle 客户端库文件。以下是详细的解决方案: #### 1. 验证操作系统架构 确认当前操作系统的架构是否为 64 位。如果系统是 32 位,则需要安装 32 位版本的 `cx_Oracle` 和对应的 Oracle 客户端库[^2]。 #### 2. 下载并安装合适的 Oracle Instant Client 访问 [Oracle Instant Client](https://www.oracle.com/database/technologies/instant-client.html) 页面下载适用于您平台的最新版客户端。确保选择的是 **64-bit** 版本,并根据您的需求下载基本包(Basic 或 Basic Light)。解压到指定目录后,设置环境变量以便程序能够识别该路径[^3]。 #### 3. 设置动态链接库路径 在 Windows 上,可以通过以下方式配置环境变量: ```cmd set ORACLE_HOME=C:\path\to\instantclient_19_8 set PATH=%ORACLE_HOME%;%PATH% ``` 对于 Linux/MacOS 用户,在 `.bashrc` 文件中添加如下内容: ```bash export ORACLE_HOME=/path/to/instantclient_19_8 export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH ``` 或者仅更新 `LD_LIBRARY_PATH` 即可[^4]。 #### 4. 使用 cx_Oracle 进行测试连接 完成以上步骤之后,可以运行简单的 Python 脚本来验证是否成功加载了 Oracle 客户端库: ```python import cx_Oracle try: connection = cx_Oracle.connect("username/password@hostname/service_name") cursor = connection.cursor() print("Connection successful!") except Exception as e: print(f"An error occurred: {e}") ``` 如果仍然遇到相同错误,请重新检查所使用的 `cx_Oracle` 是否匹配已安装的 Python 版本以及目标机器上的 CPU 架构。 --- ### 注意事项 - 如果尝试过多个不同版本仍失败,可能是因为某些依赖项缺失;此时建议查阅官方文档中的具体指导说明。 - 对于较老的操作系统组合(比如 Windows 7),部分高版本的 Oracle Clients 可能存在兼容性问题[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值