Не удается подключиться к ODBC из-за ошибки Python: файл не найден (0) (SQLDriverConnect) ") - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь подключиться к базе данных Oracle с помощью Python на сервере Linux драйвером pyodbc. но я получаю ошибку ниже:

 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>

1 Ответ

0 голосов
/ 07 ноября 2018
ls -l /usr/lib/oracle/18.3/client64/lib/libsqora.so.18.1

Какие разрешения у этого файла?

Работает ли ваш процесс Python как пользователь, который может читать и / или выполнять его?

...