Python 如何使QOCI驱动程序可用于PyQt5
我正在尝试使用Python 如何使QOCI驱动程序可用于PyQt5,python,database,oracle,pyqt,driver,Python,Database,Oracle,Pyqt,Driver,我正在尝试使用QOCI驱动程序连接到Oracle数据库,但驱动程序不可用。对于此简单代码: from PyQt5 import QtSql QtSql.QSqlDatabase.isDriverAvailable('QOCI') 我得到False 我尝试检查路径环境设置,发现有TNS_ADMIN变量设置为文件夹,其中包含驱动程序文件oci.dll: C:\Atena\instantclient_11_2 但它仍然不可用 我尝试从Oracle站点下载驱动程序,并根据Oracle说明进行设置(
QOCI
驱动程序连接到Oracle数据库,但驱动程序不可用。对于此简单代码:
from PyQt5 import QtSql
QtSql.QSqlDatabase.isDriverAvailable('QOCI')
我得到False
我尝试检查路径
环境设置,发现有TNS_ADMIN
变量设置为文件夹,其中包含驱动程序文件oci.dll
:
C:\Atena\instantclient_11_2
但它仍然不可用
我尝试从Oracle站点下载驱动程序,并根据Oracle说明进行设置(将PATH
变量更改为新的驱动程序文件夹,复制TNSnames.ora文件等),但驱动程序仍然不可用
我希望PyQt5有可用的驱动程序,加载它,并使用它连接到Oracle数据库。例如,在instantclient-basic-windowsXXXXX.zip中包含了OCI.DLL 假设您已将文件解压缩到
C:\ORACLE\IC\12201\instantclient_12_2
要使其可用于其他应用程序,请在用户环境中设置
ORACLE_HOME=C:\ORACLE\IC\12201\instantclient_12_2
PATH=%PATH%;%ORACLE_HOME%
使用此设置时,任何使用OCI.DLL的应用程序都会找到它。
当然,您必须安装正确的位大小-即,如果您的应用程序是32位的,您需要安装32位即时客户端-如果它是64位的应用程序,您需要64位即时客户端
就我所知,您需要手动构建QOCI。要做到这一点,您需要明确的即时客户端SDK包
web上的Sources声明您需要包含SDK中的头文件和lib—不幸的是,QOCI看起来仍然依赖于Oracle Client 11.X—不是即时客户端,而是常规客户端
需要使用以下库(最后一个库用于客户端12.x)
定期客户
%ORACLE_HOME%\oci\lib\msvc
%ORACLE_HOME%\oci\include
在即时客户端上
%ORACLE_HOME%\sdk\lib\msvc
%ORACLE_HOME%\sdk\include
需要包括以下标题
oci.h
定期客户
%ORACLE_HOME%\oci\lib\msvc
%ORACLE_HOME%\oci\include
在即时客户端上
%ORACLE_HOME%\sdk\lib\msvc
%ORACLE_HOME%\sdk\include
不幸的是,没有太多人支持MinGW,所以我不能这么做
“configure”命令用于准备需要包括的所有内容
-sql-oci -plugin-sql-oci
将oraociei10.dll从何处复制到何处?你能说得更具体些吗?从源代码(在Windows上)重建Qt5是否有助于解决此问题?