окна sqlanydb не могут загрузить dbcapi - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь подключиться к базе данных SQL Anywhere через python.Я создал DSN и могу использовать командную строку для подключения к базе данных, используя dbisql - c "DNS=myDSN".Когда я пытаюсь подключиться через Python, используя con = sqlanydb.connect(DSN= "myDSN"), я получаю

`Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    con = sqlanydb.connect(DSN= "RPS Integration")
  File "C:\Python27\lib\site-packages\sqlanydb.py", line 522, in connect
    return Connection(args, kwargs)
  File "C:\Python27\lib\site-packages\sqlanydb.py", line 538, in __init__
    parent = Connection.cls_parent = Root("PYTHON")
  File "C:\Python27\lib\site-packages\sqlanydb.py", line 464, in __init__
    'libdbcapi_r.dylib')
  File "C:\Python27\lib\site-packages\sqlanydb.py", line 456, in load_library
    raise InterfaceError("Could not load dbcapi.  Tried: " + ','.join(map(str, names)))
InterfaceError: (u'Could not load dbcapi.  Tried: None,dbcapi.dll,libdbcapi_r.so,libdbcapi_r.dylib', 0)`

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Одним из способов обнаружения обратной трассировки, показанной в OP, является использование 64-битного интерпретатора Python, который не может загрузить 32-битный файл dbcapi.dll.Попробуйте запустить с "py -X-32", чтобы запустить 32-битный движок, или переустановить, используя 32-битный движок python.

К сожалению, код sqlanydb, который пытается быть умным в поиске dbcapi, также в конечном итоге проглатываетисключения, выбрасываемые во время загрузки.Автор sqlanydb, вероятно, предположил, что сбой при загрузке означает, что файл не найден, что не всегда так.

0 голосов
/ 18 декабря 2018

Мне удалось решить проблему.Я никогда не мог использовать sqlanydb.connect.Я закончил тем, что использовал pyodbc.Итак, моя последняя строка подключения была con = pydobc.connect(dsn="myDSN").Я думаю, что sqlanydb полностью функционален только с sqlanydb 17, и я использовал предыдущую версию.

...