2

我安装了 SQL Anywhere 17 客户端。我跑了 /opt/sqlanywhere17/bin64/sa_config.sh 仍然有问题 sqlanydb.InterfaceError: ('Could not load dbcapi. Tried:None,dbcapi.dll,libdbcapi_r.so,libdbcapi_r.dylib', 0)

#!/usr/bin/python3.6
# -*- coding: utf-8 -*-
import ctypes
import sqlanydb
conn = sqlanydb.connect(UserID='XXX', Password='XXX', Host='10.10.10.10', DatabaseName='XXX', ServerName='XXX')
curs = conn.cursor()
curs.close()
conn.close()

日志:

Traceback (most recent call last):
  File "./systest.py", line 6, in <module>
    conn = sqlanydb.connect(UserID='XXX', Password='XXX', Host='10.10.10.10', DatabaseName='XXX', ServerName='XXX')
  File "/usr/local/lib/python3.6/site-packages/sqlanydb.py", line 522, in connect
    return Connection(args, kwargs)
  File "/usr/local/lib/python3.6/site-packages/sqlanydb.py", line 538, in __init__
    parent = Connection.cls_parent = Root("PYTHON")
  File "/usr/local/lib/python3.6/site-packages/sqlanydb.py", line 464, in __init__
    'libdbcapi_r.dylib')
  File "/usr/local/lib/python3.6/site-packages/sqlanydb.py", line 456, in load_library
    raise InterfaceError("Could not load dbcapi.  Tried: " + ','.join(map(str, names)))
sqlanydb.InterfaceError: ('Could not load dbcapi.  Tried: None,dbcapi.dll,libdbcapi_r.so,libdbcapi_r.dylib', 0)

提前感谢您的帮助

4

1 回答 1

0

我遇到了同样的问题,花了我 2 天的时间来解决它。

这是解决方案,您的解决方案在第 2 点。

  1. 如果在 Linux 或其中一种 Unix 平台上运行,则需要在启动 Python 之前设置环境。所以,下载 sql Anywhere12 / 17 并安装。(你已经这样做了)

  2. 打开终端并运行 sa_config{.sh|.csh} 脚本,以便您的 Python 应用程序可以找到所需的库(包括 libdbcapi12.dll)。 确保在同一终端中运行 sa_config.sh 文件和 app.py ,否则您将面临同样的问题。

例如,我创建了首先运行的 bash 文件。

. /opt/sqlanywhere17/bin32/sa_config.sh
python app.py

来源: 完整答案可以在 sqlanywhere 论坛上找到

于 2022-01-11T13:10:39.773 回答