首页 > 解决方案 > 无法从 Python 连接到 ODBC 错误:找不到文件 (0) (SQLDriverConnect)")

问题描述

我正在尝试通过pyodbc驱动程序在 Linux 服务器上使用 Python 连接到 oracle 数据库。但我得到以下错误:

 File "Query.py", line 20, in <module>
    connection = pyodbc.connect('Driver=/usr/lib/oracle/18.3/client64/lib/libsqo                                                                                                                     ra.so.18.1};DBQ=bnpporacleb.chwk19l2i1ki.ap-southeast-1.rds.amazonaws.com/ORCL;U                                                                                                                     id=admin;Pwd=12341234')
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/                                                                                                                     lib/oracle/18.3/client64/lib/libsqora.so.18.1}' : file not found (0) (SQLDriverC                                                                                                                     onnect)")

我也尝试在odbcinst.ini

[MyOracle]
Description=Oracle Unicode driver
Driver=/usr/lib/oracle/18.3/client64/lib/libsqora.so.18.1
UsageCount=1

但出现错误:

File "Query.py", line 19, in <module>
    connection = pyodbc.connect('Driver=MyOracle};DBQ=xxxxx/ORCL;Uid=admin;Pwd=12341234')
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'MyOracle}' : file not found (0) (SQLDriverConnect)")
FileUsage=1

下面的 dltest 命令工作正常。

[root@ip-172-31-33-62 lib]# dltest /usr/lib/oracle/18.3/client64/lib/libsqora.so.18.1
SUCCESS: Loaded /usr/lib/oracle/18.3/client64/lib/libsqora.so.18.1

此外,下面的命令给出了提到的输出:

[root@ip-172-31-33-62 etc]# python -c "import pyodbc; print(pyodbc.connect('DRIVER=MyOracle;DBQ=XXXXX/ORCL;UID=admin;PWD=12341234'))"
<pyodbc.Connection object at 0x7fba233664e0>

标签: pythonodbcpyodbc

解决方案


ls -l /usr/lib/oracle/18.3/client64/lib/libsqora.so.18.1

该文件有什么权限?

您的 Python 进程是否以可以读取和/或执行它的用户身份运行?


推荐阅读