解决 Cannot locate a 64-bit Oracle Client library 问题

本文解决Python3连接Oracle数据库时出现的Cannot locate a 64-bit Oracle Client library问题。通过将InstantClient的Bin目录添加到环境变量,确保oci.dll文件被正确识别。同时,文章提供了必要的Python连接Oracle的环境变量配置。
部署运行你感兴趣的模型镜像

解决Python3连接Oracel 数据库 Cannot locate a 64-bit Oracle Client library 问题

新布署一个环境,连接Oracel数据库报错。
Cannot locate a 64-bit Oracle Client library
在环境变量将

Instants Client 的Bin目录加到环境变量中即可。
主要就是找不到oci.dll这个文件,引起报错。

同时Python连接Oracel 的相关必要的环境变量

Mark一下。

Path = C:\Instant Client\bin
NLS_LANG = AMERICAN_AMERICA.ZHS16GBK
解决访问乱
环境变量的设置

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 解决 Linux 环境下 Oracle 客户端库 DPI-1047 错误 在 Linux 上遇到 `DPI-1047: Cannot locate a 64-bit Oracle Client library` 的错误通常是因为缺少必要的 Oracle Instant Client 库文件或环境变量配置不正确。以下是详细的解决方案: #### 验证系统架构 确保操作系统和安装的 Python 版本均为 64 位[^1]。 ```bash uname -m ``` 该命令应返回 `x86_64` 或其他表示 64 位系统的字符串。 #### 下载并安装 Oracle Instant Client 前往 [Oracle Instant Client 页面](https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html),下载适用于 Linux x86-64 的基本包 (Basic Package) 和 SDK 包 (SDK Package)[^2]。 解压下载好的压缩包到指定目录,例如 `/opt/oracle/instantclient_19_8`: ```bash sudo mkdir -p /opt/oracle/ cd /path/to/downloaded/files sudo unzip instantclient-basic-linux.x64.zip -d /opt/oracle/instantclient_19_8 sudo unzip instantclient-sdk-linux.x64.zip -d /opt/oracle/instantclient_19_8 ``` 创建软链接以便于管理不同版本之间的切换: ```bash ln -s libclntsh.so.19.1 libclntsh.so ln -s libocci.so.19.1 libocci.so ``` #### 设置环境变量 编辑 `.bashrc` 文件来设置 LD_LIBRARY_PATH 变量指向即时客户端库的位置: ```bash echo 'export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_8:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc ``` 对于某些发行版可能还需要更新动态链接器缓存: ```bash sudo sh -c "echo '/opt/oracle/instantclient_19_8/' > /etc/ld.so.conf.d/oracle-instantclient.conf" sudo ldconfig ``` #### 使用 cx_Oracle 进行测试连接 编写简单的 Python 脚本来验证是否可以成功建立数据库连接: ```python import cx_Oracle try: connection = cx_Oracle.connect( user="your_username", password="your_password", dsn="hostname:port/service_name" ) print("Database version:", connection.version) except Exception as e: print(e) connection.close() ``` 如果一切正常,则不会抛出异常;否则会显示具体的错误信息帮助进一步排查问题所在。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值