cx_Oracle 连接失败 'DPI-1047: Cannot locate a 64-bit Oracle Client library'
cx_Oracle connection fails with 'DPI-1047: Cannot locate a 64-bit Oracle Client library'
问题使用连接 oracle 到 python 源,oracle 现在可以用于其他语言 php (oci)
错误:
Traceback (most recent call last):
File "c:\xampp\htdocs\pyoracle\testConnectionOracle.py", line 4, in <module>
conn = cx_Oracle.connect('xxx','xxx', dsn_tns,'UTF-8')
cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "failed to get message for Windows Error 126". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help
代码:
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('192.168.1.217', '1521', service_name='xx')
conn = cx_Oracle.connect('xx','xx', dsn_tns,'UTF-8')
c = conn.cursor()
c.execute('select * from database.table')
for row in c:
print (row[0], '-', row[1])
conn.close()
这是 cx_Oracle Windows installation instructions,您可能是从引用的错误消息中找到的。
我假设 (i) 您实际上拥有 64 位 Oracle 客户端库 11g 或更高版本,并且 (ii) 拥有安装说明中提到的所需 VS Redistributable。那么一个简单的尝试就是将它添加到脚本的顶部:
cx_Oracle.init_oracle_client(lib_dir=r"C:\oracle\instantclient_19_6")
使用客户端库的实际路径。
PHP 可能是 32 位并使用 32 位 Oracle 库。如果是这样,因为您有 64 位 Python,那么您将需要安装 64 位 Instant Client 或安装 32 位 Python。 (注意 PHP OCI8 没有对 init_oracle_client()
的等效调用。在 PHP 中,您需要确保 Oracle Client 库位于系统搜索路径中,例如 [=21 之前的 PATH =] 进程开始。)
问题使用连接 oracle 到 python 源,oracle 现在可以用于其他语言 php (oci)
错误:
Traceback (most recent call last):
File "c:\xampp\htdocs\pyoracle\testConnectionOracle.py", line 4, in <module>
conn = cx_Oracle.connect('xxx','xxx', dsn_tns,'UTF-8')
cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "failed to get message for Windows Error 126". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help
代码:
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('192.168.1.217', '1521', service_name='xx')
conn = cx_Oracle.connect('xx','xx', dsn_tns,'UTF-8')
c = conn.cursor()
c.execute('select * from database.table')
for row in c:
print (row[0], '-', row[1])
conn.close()
这是 cx_Oracle Windows installation instructions,您可能是从引用的错误消息中找到的。
我假设 (i) 您实际上拥有 64 位 Oracle 客户端库 11g 或更高版本,并且 (ii) 拥有安装说明中提到的所需 VS Redistributable。那么一个简单的尝试就是将它添加到脚本的顶部:
cx_Oracle.init_oracle_client(lib_dir=r"C:\oracle\instantclient_19_6")
使用客户端库的实际路径。
PHP 可能是 32 位并使用 32 位 Oracle 库。如果是这样,因为您有 64 位 Python,那么您将需要安装 64 位 Instant Client 或安装 32 位 Python。 (注意 PHP OCI8 没有对 init_oracle_client()
的等效调用。在 PHP 中,您需要确保 Oracle Client 库位于系统搜索路径中,例如 [=21 之前的 PATH =] 进程开始。)