gpt4 book ai didi

python - Windows 上的 pyodbc 和 python 3.4

转载 作者:IT老高 更新时间:2023-10-28 20:52:36 27 4
gpt4 key购买 nike

pyodbc 是一个非常好的东西,但是 Windows 安装程序只能使用他们非常特定的 python 版本。随着 Python 3.4 的发布,唯一可用的安装程序一旦在注册表中看不到 3.3 就会停止(尽管 3.4 肯定存在)。

将 .pyd 和 .egg-info 文件从 3.3 安装复制到 3.4 site-packages 目录似乎并不能解决问题。导入 pyodbc 时,抛出 ImportError:ImportError: DLL load failed: %1 is not a valid Win32 application.

有没有什么秘方可以让3.3文件正常工作?还是我们只需要等待 3.4 安装程序版本?

最佳答案

不同版本的 Python(在大多数情况下)不兼容二进制,因此任何已编译的扩展(例如 pyodbc)仅适用于特定版本。

请注意,纯 Python 包(完全用 Python 编写的,没有非 Python 依赖项的包)不需要编译,因此可以编写为支持多个 Python 版本。

还请注意,技术上可以编写一个已编译的扩展,使其适用于 Python 3.2 以及 3.3、3.4 和 future 的 3.x,但它们有将自己限制在"stable ABI"PEP 384 指定,并且大多数扩展都不会这样做。据我所知,pyodbc不限于stable ABI,必须针对每个Python版本单独编译。

也就是说,只要您拥有所需的工具和专业知识,也可以从源代码编译您自己的 pyodbc 版本。 (但我猜如果你问这个问题,你不会。我也不会,否则我会在这个答案中包含一些提示。)

正如您已经评论过的,pypyodbc可能是你最好的选择,因为它是一个纯 Python 包。

可以通过命令行安装pypyodbc:

C:\Python34\Scripts>pip install pypyodbc

可以使用它作为 pyodbc 的替代品:

import pypyodbc as pyodbc

[当前版本的 pyodbc3.0.10 ,并且它确实支持 Python 3.4。当然,注意 pypyodbc 仍然很有用,以防 pypyodbc 在 Python 的 future 版本发布时再次落后。]

关于python - Windows 上的 pyodbc 和 python 3.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23299034/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com