64 位 Python 可以连接 32 位 MS 访问驱动程序吗?
Possible for 64bit Python to connect with 32bit MS access driver?
如何在 python 64 位中使用 32 位 MS 访问驱动程序进行 odbc 连接?
是否可以通过更改 pypyodbc 中的环境句柄或 odbc 常量或创建位转换文件来完成?
另一个想法(不确定是否可能):有没有办法在代码执行期间切换到 32 位 python.exe(仅在用户想要拉取访问数据库时使用)?基本上类似于...
if access api called and struct.calcsize("P") == 8:
open python 32bit interpreter and connect to 32bit driver
对所有解决方案开放...谢谢
关于此主题的文章、论坛和 SO Posts 比比皆是。
简而言之,您不能(在应用程序级别)将 64 位 Python.exe 连接到 32 位 MS Access ODBC 驱动程序 (odbcad32.exe),因为数据在两者之间的存储和处理方式不同类型。然而,对于 backwards compatibility,建议以最小公分母工作,因为 64 位 OS 可以 运行 32 位应用程序和相同级别的程序可以 "talk" 彼此.
至于切换模式的动态设置,这可能是一个非常广泛的解决方法,因为 32 位 python.exe 和 64 位 python.exe 本质上是不同的已安装应用程序,具有 pypyodbc 等相应的软件包对彼此。因此,在安装两个版本之上,您需要使用以下任一脚本:
- 一个 python 版本自行退出并使用 platform or variable length calculation 调用其他版本,如您所提到的:
struct.calcsize("p")
;
- 在命令行(例如,shell 脚本、批处理文件);
- 通过外部程序(例如,Excel/Access VBA、Java、C#、php.exe);
外部应用程序将需要 select 哪个版本 运行 python 脚本基于已安装的 ODBC 驱动程序,将注册表项视为指标或变量类型大小。这可能还需要为两个 python.exe 版本创建路径变量,并确保它们不会相互冲突,selecting 一个 default.
许多人选择根据用户的 CPU 环境部署两个版本的应用程序。
如何在 python 64 位中使用 32 位 MS 访问驱动程序进行 odbc 连接?
是否可以通过更改 pypyodbc 中的环境句柄或 odbc 常量或创建位转换文件来完成?
另一个想法(不确定是否可能):有没有办法在代码执行期间切换到 32 位 python.exe(仅在用户想要拉取访问数据库时使用)?基本上类似于...
if access api called and struct.calcsize("P") == 8:
open python 32bit interpreter and connect to 32bit driver
对所有解决方案开放...谢谢
关于此主题的文章、论坛和 SO Posts 比比皆是。
简而言之,您不能(在应用程序级别)将 64 位 Python.exe 连接到 32 位 MS Access ODBC 驱动程序 (odbcad32.exe),因为数据在两者之间的存储和处理方式不同类型。然而,对于 backwards compatibility,建议以最小公分母工作,因为 64 位 OS 可以 运行 32 位应用程序和相同级别的程序可以 "talk" 彼此.
至于切换模式的动态设置,这可能是一个非常广泛的解决方法,因为 32 位 python.exe 和 64 位 python.exe 本质上是不同的已安装应用程序,具有 pypyodbc 等相应的软件包对彼此。因此,在安装两个版本之上,您需要使用以下任一脚本:
- 一个 python 版本自行退出并使用 platform or variable length calculation 调用其他版本,如您所提到的:
struct.calcsize("p")
; - 在命令行(例如,shell 脚本、批处理文件);
- 通过外部程序(例如,Excel/Access VBA、Java、C#、php.exe);
外部应用程序将需要 select 哪个版本 运行 python 脚本基于已安装的 ODBC 驱动程序,将注册表项视为指标或变量类型大小。这可能还需要为两个 python.exe 版本创建路径变量,并确保它们不会相互冲突,selecting 一个 default.
许多人选择根据用户的 CPU 环境部署两个版本的应用程序。