我正在使用该模块pyodbc在 Python 脚本中通过网络连接到 Intuit 应用程序 QuickBooks。为了实现这一点,我使用了一个名为的 ODBC 插件/DLLQ遥控。
在 Windows 上,使用 Python 的 Anaconda 发行版和pydobc
.连接字符串使用在中配置的 DSNMicrosoft 的 ODBC 数据源管理以及我要连接的远程计算机的 IP 地址:
import pyodbc
cn = pyodbc.connect(r'DSN=remote_clientname; IPAddress=192.168.0.50; Port=4500; RemoteDSN=local_clientname; openMode=F; OLE DB Services=-2;', autocommit=True)
我遇到的问题是我试图运行在 Linux (Debian Buster) 计算机上执行的相同代码,以与仅在 Windows 上支持的第三方 DLL 进行通信。有人建议我可以在 Debian 上使用 KVM 虚拟化来完成此任务。
使用 PyODBC (A),MS box 上的 Python 连接到 MS ODBC 非常容易。这是我第一次使用 KVM,我不知道如何从 Debian 上的 Python 脚本定位相同的 MS ODBC DSN (B)
我做了什么:
- 安装 Microsoft 驱动程序德班
- 成功安装KVM并安装Windows和ODBC第三方插件。
- 已安装适用于 SQL Server Linux 的 Microsoft ODBC 驱动程序
更新:
我有一个SE 的支持问题PyODBC 贡献者 GordThompson 说,“我们无法从一台计算机(例如 Linux)连接到另一台计算机上的 ODBC DSN 条目。”
我需要什么才能让脚本与 KVM/Windows 内的 ODBC 通信?我可以在位置 (A) 的脚本之外创建一个 API,它可以充当脚本 (B) 和 Microsoft 的 ODBC 数据源管理之间的代理吗?
答案1
我能够使用套接字库+pickle 创建这个问题的解决方案。这是一个出色的教程,为我们铺平了道路:Python 中的套接字编程(指南)。 (我还要感谢 Python Discord 频道建议的套接字。)