python 连接 oracle cx_Oracle.DatabaseError: DPI-1047
pip install cx_oracle
import cx_Oracle
# 设置
dsn = cx_Oracle.makedsn("ip", port, "主机")
# 连接
conn = cx_Oracle.connect("username","password",dsn)
# conn = cx_Oracle.connect("username/password@ip:port/主机")
curs = conn.cursor()
sql = 'select * from dual'
rr = curs.execute (sql)
row = curs.fetchone()
print(row[0])
# 关闭
curs.close()
conn.close()
报错:
cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "C:\oracle\product\10.2.0\client_2\bin\oci.dll is not the correct architecture". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help
oracle 客户端安装:
1.修改 Oracle客户端\win64_11gR2_client\client\stage\cvu 下 cvu_prereq.xml 和 oracle.client_InstantClient.xml :
在标签<CERTIFIED_SYSTEMS> 中增加以下内容,注意 64位MAX_LENGTH="5119", 32 位 MAX_LENGTH="1023"
<OPERATING_SYSTEM RELEASE="6.2">
<VERSION VALUE="3"/>
<ARCHITECTURE VALUE="64-bit"/>
<NAME VALUE="Windows 10"/>
<ENV_VAR_LIST>
<ENV_VAR NAME="PATH" MAX_LENGTH="5119" />
</ENV_VAR_LIST>
</OPERATING_SYSTEM>
2.尝试 Oracle客户端\win64_11gR2_client\client\setup.exe 安装;
环境检查失败则:
1.以管理员方式运行命令行工具,通过DOS命令 net share c$=c: 查看默认共享情况是否正常;
2.尝试 Oracle客户端\win64_11gR2_client\client\setup.exe 安装;
若仍失败,则:
1.运行 regedit -> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters 选中Parameters,在右边名称中找到AutoShareWks 项,在其右键菜单中 ,点击修改,将其“数值数据(V):”由原来的0改为1,然后点击确定。
2.重启系统;
3.尝试 Oracle客户端\win64_11gR2_client\client\setup.exe 安装;
安装成功后,需要将注册表中的 AutoShareWks 项 值改回 0;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?