python3安装cx_Oracle
快速入门cx_Oracle安装
-
如果尚未安装,请安装Python 3。在macOS上,您必须始终安装自己的Python。
cx_Oracle 8支持Python 3.5和更高版本。如果使用Python 2,则将安装较旧的cx_Oracle 7.3。
-
通过以下方式从PyPI安装cx_Oracle :
python -m pip install cx_Oracle --upgrade
注意:如果您的平台不提供二进制车轮软件包,则将下载源软件包。这将被编译并安装生成的二进制文件。
--user
如果您无权写入系统目录,则该选项可能很有用:python -m pip install cx_Oracle --upgrade --user
如果您在代理后面,则将代理服务器添加到命令中,例如add
--proxy=http://proxy.example.com:80
-
将Oracle 19、18、12或11.2客户端库添加到操作系统库搜索路径,例如
PATH
Windows或LD_LIBRARY_PATH
Linux。init_oracle_client()
在您的应用程序中使用macOS传递Oracle客户端目录名称时,请参阅查找Oracle客户端库。在Windows上也可以使用。获取库:
-
如果数据库位于远程计算机上,则从免费的Oracle Instant Client “ Basic”或“ Basic Light”软件包中下载并解压缩客户端库,以用于您的操作系统体系结构。
Windows上的Instant Client需要适当的Microsoft Windows Redistributable,请参阅在Windows上安装cx_Oracle。在Linux上,需要
libaio
(有时称为libaio1
)软件包。Oracle Linux 8也需要该libnsl
软件包。 -
或者,使用本地安装的数据库中已有的客户端库,例如免费的Oracle Database Express Edition(“ XE”) 版本。
版本19、18和12.2客户端库可以连接到Oracle Database 11.2或更高版本。12.1版客户端库可以连接到Oracle Database 10.2或更高版本。11.2版客户端库可以连接到Oracle Database 9.2或更高版本。
-
-
创建一个类似于以下脚本的脚本:
# myscript.py import cx_Oracle # Connect as user "hr" with password "welcome" to the "orclpdb1" service running on this computer. connection = cx_Oracle.connect("hr", "welcome", "localhost/orclpdb1") cursor = connection.cursor() cursor.execute(""" SELECT first_name, last_name FROM employees WHERE department_id = :did AND employee_id > :eid""", did = 50, eid = 190) for fname, lname in cursor: print("Values:", fname, lname)
找到您的Oracle数据库用户名和密码,以及数据库连接字符串。连接字符串通常采用以下格式
hostname/servicename
:使用运行数据库的主机名和使用Oracle数据库实例的服务名。将您的用户名,密码和连接字符串替换为代码。运行Python脚本,例如:
python myscript.py
您可以从API文档 和示例中学习如何使用cx_Oracle 。
如果您遇到安装问题,请查看“故障排除”部分。
Oracle客户端和Oracle数据库的互操作性
cx_Oracle需要Oracle客户端库。这些库提供了访问Oracle数据库实例所需的网络连接。它们还为cx_Oracle提供基本和高级的连接管理和数据功能。
获取Oracle客户端库的最简单方法是安装免费的 Oracle Instant Client “基本”或“基本轻”软件包。这些库也可以在任何Oracle数据库安装或完整的Oracle Client安装中使用。
Oracle的标准客户端-服务器网络互操作性允许在不同版本的Oracle客户端库和Oracle数据库之间建立连接。有关认证的配置,请参见Oracle支持的 Doc ID 207303.1。总之,Oracle Client 19、18和12.2可以连接到Oracle Database 11.2或更高版本。Oracle Client 12.1可以连接到Oracle Database 10.2或更高版本。Oracle Client 11.2可以连接到Oracle Database 9.2或更高版本。创建连接的技术限制可能更加灵活。例如,Oracle Client 12.2可以成功连接到Oracle Database 10.2。
cx_Oracle使用每个受支持平台上可用的共享库加载机制在运行时加载Oracle Client库。无需为不同版本的库重建它。由于单个cx_Oracle二进制文件可以使用不同的客户端版本,并且还可以访问多个数据库版本,因此在预期的发行环境中对应用程序进行测试非常重要。较新的Oracle客户端支持新功能,例如12.1或更高版本的客户端可用的oraaccess.xml外部配置文件,会话池改进,改进的高可用性功能,呼叫超时和其他增强功能。
cx_Oracle函数clientversion()
可用于确定使用哪个Oracle Client版本,该属性 Connection.version
可用于确定连接正在访问哪个Oracle数据库版本。然后可以使用它们来相应地调整应用程序行为。尝试使用某些特定的客户机/服务器组合不支持的Oracle功能可能会导致运行时错误。这些包括:
- 尝试访问当前Oracle客户端库不支持的属性时,将收到错误消息“ ORA-24315:非法属性类型”
- 尝试将针对Oracle Database 12c的Oracle Client 11.2使用隐式结果时,会出现错误“ ORA-29481:隐式结果无法返回给客户端”
- 尝试使用Oracle Client 11.2获取数组DML行计数时,您将收到错误“ DPI-1050:Oracle Client库必须为12.1版或更高版本”
在Linux上安装cx_Oracle
本节讨论Linux上的常规安装方法。要在Oracle Linux上使用yum的Python和cx_Oracle RPM软件包,请参阅在Oracle Linux上安装cx_Oracle RPM。
安装cx_Oracle
在Linux上安装cx_Oracle的通用方法是使用Python的Pip软件包从PyPI安装cx_Oracle :
python -m pip install cx_Oracle --upgrade
--user
如果您无权写入系统目录,则该选项可能很有用:
python -m pip install cx_Oracle --upgrade --user
如果您在代理后面,则将代理服务器添加到命令中,例如add --proxy=http://proxy.example.com:80
如果您的体系结构可用,它将下载并安装预编译的二进制文件。如果没有预编译的二进制文件,则将下载,编译源文件并安装生成的二进制文件。编译cx_Oracle需要Python.h
头文件。如果使用默认python
软件包,则此文件位于python-devel
软件包或等效文件中。
安装Oracle客户端
使用cx_Oracle要求安装Oracle客户端库。这些提供了必要的网络连接性,从而允许cx_Oracle访问Oracle数据库实例。
- 如果您的数据库位于远程计算机上,请 为您的操作系统体系结构下载免费的Oracle Instant Client “ Basic”或“ Basic Light”软件包。根据您的喜好使用RPM或ZIP软件包。
- 或者,使用本地安装的数据库中已有的客户端库,例如免费的Oracle Database Express Edition(“ XE”) 版本。
Oracle Instant Client Zip文件
要将cx_Oracle与Oracle Instant Client zip文件一起使用:
-
下载Oracle 19、18、12或11.2“ Basic”或“ Basic Light” zip文件:64位 或32位,与您的Python体系结构匹配。
建议使用最新版本。Oracle Instant Client 19将连接到Oracle Database 11.2或更高版本。
-
将软件包解压缩到应用程序可访问的单个目录中。例如:
mkdir -p /opt/oracle cd /opt/oracle unzip instantclient-basic-linux.x64-19.6.0.0.0dbru.zip
-
libaio
使用sudo或以root用户身份安装软件包。例如:sudo yum install libaio
在某些Linux发行版中,此软件包被称为
libaio1
。在最新的Linux版本(例如Oracle Linux 8)上,您可能还需要安装该
libnsl
软件包。 -
如果计算机上没有其他会受影响的Oracle软件,则将Instant Client永久添加到运行时链接路径。例如,使用sudo或以root用户身份:
sudo sh -c "echo /opt/oracle/instantclient_19_6 > /etc/ld.so.conf.d/oracle-instantclient.conf" sudo ldconfig
或者,将环境变量设置
LD_LIBRARY_PATH
为Instant Client版本的适当目录。例如:export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_6:$LD_LIBRARY_PATH
-
如果使用可选的Oracle配置文件,如
tnsnames.ora
,sqlnet.ora
或oraaccess.xml
与即时客户端,然后将文件放在一个可访问的目录中,例如在/opt/oracle/your_config_dir
。然后使用:import cx_Oracle cx_Oracle.init_oracle_client(config_dir="/home/your_username/oracle/your_config_dir")
或将环境变量
TNS_ADMIN
设置为该目录名称。或者,将文件放在
network/admin
Instant Client的子目录中,例如在中/opt/oracle/instantclient_19_6/network/admin
。这是与此即时客户端链接的可执行文件的默认Oracle配置目录。
Oracle Instant Client RPM
要将cx_Oracle与Oracle Instant Client RPM一起使用:
-
下载Oracle 19、18、12或11.2“ Basic”或“ Basic Light” RPM:64位 或32位,与您的Python体系结构匹配。
Oracle的百胜服务器的Oracle Linux的7即时客户端的RPM ,并为Oracle Linux 6的即时客户端的RPM ,可以无需点击后进行下载。
建议使用最新版本。Oracle Instant Client 19将连接到Oracle Database 11.2或更高版本。
-
以sudo或以root用户身份安装下载的RPM。例如:
sudo yum install oracle-instantclient19.6-basic-19.6.0.0.0-1.x86_64.rpm
Yum将自动安装所需的依赖项,例如
libaio
。在最新的Linux版本(例如Oracle Linux 8)上,您可能需要手动安装该
libnsl
软件包。 -
对于Instant Client 19,在安装过程中会自动配置系统库搜索路径。
对于较旧的版本,如果计算机上没有其他会受影响的Oracle软件,则将Instant Client永久添加到运行时链接路径。例如,使用sudo或以root用户身份:
sudo sh -c "echo /usr/lib/oracle/18.3/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf" sudo ldconfig
或者,对于版本18和更早版本,每个运行Python的外壳都需要将环境变量
LD_LIBRARY_PATH
设置为Instant Client版本的适当目录。例如:export LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib:$LD_LIBRARY_PATH
-
如果使用可选的Oracle配置文件,如
tnsnames.ora
,sqlnet.ora
或oraaccess.xml
与即时客户端,然后将文件放在一个可访问的目录中,例如在/opt/oracle/your_config_dir
。然后使用:import cx_Oracle cx_Oracle.init_oracle_client(config_dir="/opt/oracle/your_config_dir")
或将环境变量
TNS_ADMIN
设置为该目录名称。或者,将文件放在
network/admin
Instant Client的子目录中,例如在中/usr/lib/oracle/19.6/client64/lib/network/admin
。这是与此即时客户端链接的可执行文件的默认Oracle配置目录。
本地数据库或完整的Oracle客户端
cx_Oracle应用程序可以使用本地Oracle数据库中的Oracle Client 19、18、12或11.2库,也可以使用完整的Oracle Client安装。
这些库必须是32位或64位,与您的Python体系结构匹配。
-
通过运行Oracle环境脚本来设置必需的Oracle环境变量。例如:
source /usr/local/bin/oraenv
对于Oracle Database Express Edition(“ XE”)11.2,运行:
source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
-
可选Oracle配置文件,如
tnsnames.ora
,sqlnet.ora
或oraaccess.xml
可以放置在$ORACLE_HOME/network/admin
。或者,可以将Oracle配置文件放在另一个可访问的目录中。然后将环境变量
TNS_ADMIN
设置为该目录名称。
在Oracle Linux上安装cx_Oracle RPM
可从Oracle Linux yum服务器获得Python和cx_Oracle RPM软件包。易于安装各种版本的Python。使用yum服务器可以轻松保持最新状态。
在Windows上安装cx_Oracle
安装cx_Oracle
使用Python的Pip 软件包从PyPI安装cx_Oracle :
python -m pip install cx_Oracle --upgrade
如果您位于代理服务器后面,请指定代理服务器:
python -m pip install cx_Oracle --proxy=http://proxy.example.com:80 --upgrade
如果您的体系结构可用,它将下载并安装预编译的二进制文件。如果没有预编译的二进制文件,则将下载,编译源文件并安装生成的二进制文件。
安装Oracle客户端
使用cx_Oracle要求安装Oracle客户端库。这些提供了必要的网络连接性,从而允许cx_Oracle访问Oracle数据库实例。支持Oracle客户端版本19、18、12和11.2。
- 如果您的数据库位于远程计算机上,请 为您的操作系统体系结构下载免费的Oracle Instant Client “ Basic”或“ Basic Light”软件包。
- 或者,使用本地安装的数据库中已有的客户端库,例如免费的Oracle Database Express Edition(“ XE”) 版本。
Oracle Instant Client Zip文件
要将cx_Oracle与Oracle Instant Client zip文件一起使用:
-
下载Oracle 19、18、12或11.2“ Basic”或“ Basic Light” zip文件:64位 或32位,与您的Python体系结构匹配。
建议使用最新版本。Oracle Instant Client 19将连接到Oracle Database 11.2或更高版本。
Windows 7用户:请注意,Windows 7不支持Oracle 19c。
-
将软件包解压缩到应用程序可访问的目录中。例如解压缩
instantclient-basic-windows.x64-19.6.0.0.0dbru.zip
到C:\oracle\instantclient_19_6
。 -
有几种其他方法可以告诉cx_Oracle Oracle Client库在哪里,请参见cx_Oracle 8初始化。
-
借助Oracle Instant Client,您可以
init_oracle_client()
在应用程序中使用,例如:import cx_Oracle cx_Oracle.init_oracle_client(lib_dir=r"C:\oracle\instantclient_19_6")
请注意,使用“原始”字符串是因为路径中会出现反斜杠。
-
或者,将Oracle Instant Client目录添加到
PATH
环境变量。该目录必须出现在PATH
任何其他Oracle目录之前。重新启动所有打开的命令提示符窗口。 -
另一种设置方法
PATH
是使用批处理文件在Python执行之前对其进行设置,例如:REM mypy.bat SET PATH=C:\oracle\instantclient_19_6;%PATH% python %*
每次您要运行Python时都调用此批处理文件。
-
-
Oracle Instant Client库需要使用64位或32位体系结构可再发行的Visual Studio,以匹配Instant Client的体系结构。每个Instant Client版本都需要一个不同的可再发行版本:
- 对于Instant Client 19,请安装VS 2017。
- 对于Instant Client 18或12.2,请安装VS 2013
- 对于Instant Client 12.1,请安装VS 2010
- 对于Instant Client 11.2,请安装VS 2005 64位或VS 2005 32位
-
如果使用可选的Oracle配置文件,如
tnsnames.ora
,sqlnet.ora
或oraaccess.xml
与即时客户端,然后将文件放在一个可访问的目录中,例如在C:\oracle\your_config_dir
。然后使用:import cx_Oracle cx_Oracle.init_oracle_client(config_dir=r"C:\oracle\your_config_dir")
或将环境变量
TNS_ADMIN
设置为该目录名称。或者,将文件放在
network\admin
Instant Client的子目录中,例如在中C:\oracle\instantclient_19_6\network\admin
。这是与此即时客户端链接的可执行文件的默认Oracle配置目录。
本地数据库或完整的Oracle客户端
cx_Oracle应用程序可以使用本地Oracle数据库或完整的Oracle Client中的Oracle Client 19、18、12或11.2库。
Oracle库必须是32位或64位,与您的Python体系结构匹配。
-
设置环境变量
PATH
以包含包含的路径OCI.DLL
(如果尚未设置)。重新启动所有打开的命令提示符窗口。
-
可选的Oracle配置文件,如
tnsnames.ora
,sqlnet.ora
或oraaccess.xml
可以放置在network\admin
Oracle数据库软件安装目录的子目录。或者, 如上一节中所示传递
config_dir
到init_oracle_client()
,或设置TNS_ADMIN
为目录名称。
在macOS上安装cx_Oracle
安装Python
确保您没有使用捆绑的Python。这些具有有限的权利,并且将无法加载Oracle客户端库。而是使用 Homebrew或Python.org。
注意macOS 10.15 Catalina不支持Instant Client 19及更早版本。您将需要允许从“安全性和隐私”首选项窗格访问多个Instant Client库。
安装cx_Oracle
使用Python的Pip 软件包从PyPI安装cx_Oracle :
python -m pip install cx_Oracle --upgrade
--user
如果您无权写入系统目录,则该选项可能很有用:
python -m pip install cx_Oracle --upgrade --user
如果您在代理后面,则将代理服务器添加到命令中,例如add --proxy=http://proxy.example.com:80
将下载,编译源代码,并安装生成的二进制文件。
安装Oracle Instant Client
cx_Oracle需要Oracle客户端库,可在macOS的Oracle Instant Client中找到。这些提供了必要的网络连接性,从而允许cx_Oracle访问Oracle数据库实例。
要将cx_Oracle与Oracle Instant Client zip文件一起使用:
-
从此处下载Oracle 19、18、12或11.2“ Basic”或“ Basic Light” zip文件。选择与您的Python体系结构匹配的64位或32位软件包。
建议使用最新版本。Oracle Instant Client 19将连接到Oracle Database 11.2或更高版本。
-
将软件包解压缩到应用程序可访问的单个目录中。例如,在终端中,您可以将您的主目录解压缩:
cd ~ unzip instantclient-basic-macos.x64-19.3.0.0.0dbru.zip
这将创建一个目录
/Users/your_username/instantclient_19_3
。 -
有几种其他方法可以告诉cx_Oracle Oracle Instant Client库在哪里,请参见cx_Oracle 8初始化。
-
您可以
init_oracle_client()
在您的应用程序中使用:import cx_Oracle cx_Oracle.init_oracle_client(lib_dir="/Users/your_username/instantclient_19_3")
-
或者,使用cx_Oracle模块二进制文件找到目录,并将Oracle Instant Client链接或复制到该目录。例如,如果您
--user
在Python 3.8中安装了cx_Oracle ,则cx_Oracle.cpython-38-darwin.so
可能在中~/Library/Python/3.8/lib/python/site-packages
。然后,您可以运行 或将Instant Client库复制到该目录。ln -s ~/instantclient_19_3/libclntsh.dylib ~/Library/Python/3.8/lib/python/site-packages
-
另外,您可以设置
DYLD_LIBRARY_PATH
到包含Oracle Instant Client的目录,但是需要在每个调用Python的终端或进程中进行设置。该变量将不会传播到子外壳。 -
或者,在旧版本的macOS上,您可以添加链接
$HOME/lib
或/usr/local/lib
使应用程序能够找到Instant Client。如果lib
子目录不存在,则可以创建它。例如:mkdir ~/lib ln -s ~/instantclient_19_3/libclntsh.dylib ~/lib/
除了链接,您可以复制所需的OCI库。例如:
mkdir ~/lib cp ~/instantclient_19_3/{libclntsh.dylib.19.1,libclntshcore.dylib.19.1,libnnz19.dylib,libociei.dylib} ~/lib/
对于Instant Client 11.2,必须复制OCI库。例如:
mkdir ~/lib cp ~/instantclient_11_2/{libclntsh.dylib.11.1,libnnz11.dylib,libociei.dylib} ~/lib/
-
-
如果您使用可选的Oracle配置文件(例如
tnsnames.ora
)sqlnet.ora
或oraaccess.xml
与Oracle Instant Client一起使用,则将文件放在可访问的目录中,例如/Users/your_username/oracle/your_config_dir
。然后使用:import cx_Oracle cx_Oracle.init_oracle_client(config_dir="/Users/your_username/oracle/your_config_dir")
或将环境变量
TNS_ADMIN
设置为该目录名称。或者,将文件放在
network/admin
Oracle Instant Client的子目录中,例如在中/Users/your_username/instantclient_19_3/network/admin
。这是与此即时客户端链接的可执行文件的默认Oracle配置目录。
在没有Internet访问的情况下安装cx_Oracle
要在未连接到互联网的计算机上安装cx_Oracle,请从PyPI下载相应的cx_Oracle文件。将此文件传输到脱机计算机并使用以下方法安装:
python -m pip install "<file_name>"
然后,按照通用的cx_Oracle平台安装说明来安装Oracle客户端库。
使用GitHub安装
为了使用GitHub上的源代码进行安装,请使用以下命令:
git clone https://github.com/oracle/python-cx_Oracle.git cx_Oracle
cd cx_Oracle
git submodule init
git submodule update
python setup.py install
请注意,如果您直接从GitHub下载源zip文件,则还需要下载ODPI-C源zip文件并将其解压缩到名为“ odpi”的目录中。
也可以从oss.oracle.com获得cx_Oracle源代码。可以使用以下方法克隆:
git clone git://oss.oracle.com/git/oracle/python-cx_Oracle.git cx_Oracle
cd cx_Oracle
git submodule init
git submodule update
从旧版本升级
查看发行说明是否过时并修改任何受影响的代码。
如果要从cx_Oracle 7升级,请注意以下更改:
- 现在,cx_Oracle 8使用的默认字符集为“ UTF-8”。此外,
NLS_LANG
环境变量的字符集组件也将被忽略。如果需要更改字符集,则在创建连接或连接池时传递encoding
和nendcoding
参数。请参阅字符集和全球化。type(var)
需要的任何用途都应更改为var.type
。- 任何需要的使用都需要更改为
var.type is not None
isinstance(var.type, cx_Oracle.ObjectType)
- 请注意,列现在将被报告为 而不是 在。
TIMESTAMP WITH TIME ZONE
cx_Oracle.DB_TYPE_TIMESTAMP_TZ
cx_Oracle.TIMESTAMP
Cursor.description
- 请注意,列现在将被报告为而不是 在。
TIMESTAMP WITH LOCAL TIME ZONE
cx_Oracle.DB_TYPE_TIMESTAMP_LTZ
cx_Oracle.TIMESTAMP
Cursor.description
- 请注意,
BINARY_FLOAT
列现在将被报告为cx_Oracle.DB_TYPE_BINARY_FLOAT
而不是cx_Oracle.NATIVE_DOUBLE
在Cursor.description
。
如果要从cx_Oracle 5升级,请注意以下安装更改:
- 使用Oracle Instant Client时,不应设置
ORACLE_HOME
。- 在Linux上,cx_Oracle 6和更高版本不再自动使用Instant Client RPM。您必须设置
LD_LIBRARY_PATH
或用于ldconfig
查找Oracle客户端库。- PyPI不再允许托管Windows安装程序或Linux RPM。请改用提供的cx_Oracle Wheels,或使用Oracle的RPM,请参阅在Oracle Linux上安装cx_Oracle RPM。
在Python 2中安装cx_Oracle
cx_Oracle 7.3是支持Python 2的最新版本。
如果使用上面提供的命令在Python 2中安装cx_Oracle,则将安装cx_Oracle 7.3。这等效于使用如下命令:
python -m pip install cx_Oracle==7.3 --upgrade --user
有关其他安装选项(例如通过代理安装),请参阅上面的说明。确保Oracle Client库在系统库搜索路径中,因为cx_Oracle 7不支持该 cx_Oracle.init_oracle_client()
方法,并且不支持从包含cx_Oracle模块二进制文件的目录中加载Oracle Client库。
安装cx_Oracle 5.3
如果您需要cx_Oracle 5.3,请从PyPI下载Windows安装程序或用于从源代码安装。python -m pip install cx-oracle==5.3
可以在SourceForce的“文件”部分中找到非常旧的cx_Oracle版本 。
故障排除
如果安装失败:
-v
与pip一起使用选项。查看输出和日志。尝试使用其他方法进行安装。谷歌任何看起来像一个错误。 尝试一些潜在的解决方案。- 网络连接错误吗?您是否需要设置环境变量
http_proxy
和/或https_proxy
?还是尝试?pip install --proxy=http://proxy.example.com:80 cx_Oracle --upgrade
- 如果升级没有错误,但仍安装了旧版本,请尝试
pip install cx_Oracle --upgrade --force-reinstall
- 如果您无权修改Python的系统版本,可以使用 还是venv?
pip install cx_Oracle --upgrade --user
- 您是否收到错误“ ”?pip模块内置于Python,但有时会被操作系统删除。请使用venv模块(内置于Python 3.x)或virtualenv模块。
No module named pip
- 从源代码构建时是否得到错误“ ”?确保源安装中有一个包含文件的名为“ odpi”的子目录。如果缺少,请查看“使用GitHub安装”部分。
fatal error: dpi.h: No such file or directory
如果使用cx_Oracle失败:
- 您是否收到错误“ ”?
DPI-1047: Oracle Client library cannot be loaded
- 检查Python,cx_Oracle和Oracle Client库都是64位还是32位。该
DPI-1047
消息将告诉您Python是否需要64位或32位Oracle Client。- 在Windows上,如果您使用过
init_oracle_client()
并且具有完整的数据库安装,请确保该数据库是当前配置的数据库。- 在Windows上,如果您没有使用
init_oracle_client()
,则重新启动命令提示符,并使用来检查环境变量在所有其他Oracle目录之前是否列出了正确的Oracle Client。set PATH
- 在Windows上,使用
DIR
命令验证OCI.DLL
传递到init_oracle_client()
或在中设置的目录中是否存在PATH
。- 在Windows上,检查是否已安装正确的Windows Redistributable。
- 在Linux上,检查
LD_LIBRARY_PATH
环境变量是否包含Oracle Client库目录。如果使用的是Oracle Instant Client,则首选方法是确保/etc/ld.so.conf.d
目录中的文件 包含Instant Client目录的路径,然后运行ldconfig
。- 在macOS上,确保未使用捆绑的Python(改为使用Homebrew或Python.org)。如果不使用
init_oracle_client()
,则将Oracle Instant Client库放在~/lib
或中/usr/local/lib
。- 如果显示“ ”,请检查安装要求。cx_Oracle需要Oracle客户端库11.2或更高版本。请注意,Windows 7不支持版本19。以上所示的类似步骤可能会有所帮助。
DPI-1072: the Oracle Client library version is unsupported
DPI-1047
- 如果安装了多个版本的Python,请确保使用正确的python和pip(或python3和pip3)可执行文件。