Rex*_*ife 25 python cx-oracle python-3.x windows-10
我安装了该库,当尝试使用我的凭据在 jupyter notebook 中访问 SQL 时,出现以下错误:
数据库错误:DPI-1047:找不到 64 位 Oracle 客户端库:“找不到指定的模块”。请参阅 https://oracle.github.io/odpi/doc/installation.html#windows 寻求帮助
小智 27
最简单的解决方案如下:
这就对了!
Sta*_*tan 15
简短的回答是: cx_Oracle.init_oracle_client(lib_dir= r"c:\path_to_libraries")
以下是我为解决同一问题而遵循的步骤:
如果您尚未安装 cx_Oracle,则可以使用以下命令进行安装:
python -m pip install cx_Oracle --upgrade
可以在此处找到 cx_Oracle 文档。
使用以下命令验证是否已安装并识别所有内容:
import sqlalchemy as sqla
import pandas as pd
import cx_Oracle
# Test to see if it will print the version of sqlalchemy
print(sqla.__version__) # this returns 1.2.15 for me
# Test to see if the cx_Oracle is recognized
print(cx_Oracle.version) # this returns 8.0.1 for me
# This fails for me at this point but will succeed after the solution described below
cx_Oracle.clientversion()
Run Code Online (Sandbox Code Playgroud)
在这一点上,我收到错误说无法找到库。这是解决方案:
import os
import platform
# This is the path to the ORACLE client files
lib_dir = r"C:\put_your_path_here\instantclient-basic-windows.x64- 19.9.0.0.0dbru\instantclient_19_9"
# Diagnostic output to verify 64 bit arch and list files
print("ARCH:", platform.architecture())
print("FILES AT lib_dir:")
for name in os.listdir(lib_dir):
print(name)
Run Code Online (Sandbox Code Playgroud)
请务必更新lib_dir特定于您的安装的路径。如果您有正确的路径,您应该会看到所有 Oracle 文件的列表,例如:(adrci.exe、oci.dll、oci.sym 等)。这是 Python 需要能够找到 Oracle 驱动程序的位置。
当前(2020 年 11 月)传递适用于 Windows 的 Oracle 库的位置的标准方法是cx_Oracle.init_oracle_client(lib_dir= r"c:\path_to_libraries"). 下面是一个例子:
lib_dir = r"C:\put_your_path_here\instantclient-basic-windows.x64- 19.9.0.0.0dbru\instantclient_19_9"
try:
cx_Oracle.init_oracle_client(lib_dir=lib_dir)
except Exception as err:
print("Error connecting: cx_Oracle.init_oracle_client()")
print(err);
sys.exit(1);
Run Code Online (Sandbox Code Playgroud)
此时我可以运行以下错误而没有任何错误:
# This works after passing the lib_dir path
cx_Oracle.clientversion() # For me it returns: (19, 9, 0, 0, 0)
Run Code Online (Sandbox Code Playgroud)
已弃用 以下是临时更新 PATH 变量的方法:
以下工作,但cx_Oracle.init_oracle_client(lib_dir= r"c:\path_to_libraries")现在使用是首选方式。
import os
# Manually append the location of the ORACLE libraries to the PATH variable
os.environ["PATH"] = lib_dir + ";" + os.environ["PATH"]
Run Code Online (Sandbox Code Playgroud)
小智 5
根据在cx_Oracle 页面上访问的文档。
第一步:安装cx_Oracle
python -m pip install cx_Oracle --upgrade
Run Code Online (Sandbox Code Playgroud)
步骤 2:下载并解压 Oracle Basic Client
对于Windows下载和提取甲骨文基本Instatnt客户instantclient-basic-windows.x64-19.9.0.0.0dbru.zip文件。
第 3 步:将 Instatnt 客户端位置通知 cx_Oracle 模块。
如果您坚持使用文档并将它们解压缩到c:\oracle文件夹中,那么您的脚本可能如下所示。
import cx_Oracle
cx_Oracle.init_oracle_client(lib_dir=r"C:\oracle\instantclient_19_9")
Run Code Online (Sandbox Code Playgroud)
现在您将摆脱错误。
小智 0
可能您已经安装了 cx_Oracle Python 库。为了通过 jupyter Notebook 执行数据库连接,您需要安装 Oracle 客户端,而这正是您的场景中所缺少的。请按照以下链接中的步骤安装 Oracle 客户端,这将解决您的问题: https ://oracle.github.io/odpi/doc/installation.html#windows
| 归档时间: |
|
| 查看次数: |
68788 次 |
| 最近记录: |