【发布时间】: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 身份运行?