【问题标题】:Cannot connect to ODBC from Python Error: file not found (0) (SQLDriverConnect)")无法从 Python 连接到 ODBC 错误:找不到文件 (0) (SQLDriverConnect)")
【发布时间】:2026-01-01 00:40:01
【问题描述】:

我正在尝试通过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>

【问题讨论】:

  • 看起来您成功的测试是以 root 身份运行的。您失败的 Python 应用程序是否也在以 root 身份运行?

标签: python odbc pyodbc


【解决方案1】:
ls -l /usr/lib/oracle/18.3/client64/lib/libsqora.so.18.1

那个文件有什么权限?

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

【讨论】:

    最近更新 更多