Windows上的pyodbc和python 3.4

2024-09-26 22:43:51 发布

您现在位置:Python中文网/ 问答频道 /正文

pyodbc是一件很好的事情,但是Windows安装程序只能使用它们非常特定的python版本。随着Python3.4的发布,只有在注册表中没有看到3.3时,可用的安装程序才会停止(尽管3.4确实存在)。

将.pyd和.egg信息文件从3.3安装复制到3.4 site packages目录中似乎没什么用。导入pyodbc时,将引发importTerror:ImportError: DLL load failed: %1 is not a valid Win32 application.

有没有可以添加的秘密调味汁来使3.3文件正常工作?或者我们只需要等待3.4的安装版本?


Tags: 文件版本目录信息egg注册表windowspackages
3条回答

你试过从here下载吗?它的非官方版本是3.4。我自己做了一个快速的测试,看起来对我很好。

我通过安装pyodbc 3.0.10解决了这个问题。最新版本的pyodbc无法在具有Python 3.4的Windows上运行

然而,pyodbc 3.0.10确实对我有效

在命令提示符下安装命令:pip install pyodbc 3.0.10

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

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

还要注意的是,从技术上讲,编写一个编译的扩展是可能的,这样它就可以适用于Python 3.2、3.3、3.4以及未来的3.x,但是它们必须将自己限制在由PEP 384指定的"stable ABI"上,而且大多数扩展不会这样做。据我所知,pyodbc不仅限于稳定的ABI,而且必须为每个Python版本分别编译。

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

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

可以通过命令行安装pypyodbc:

C:\Python34\Scripts>pip install pypyodbc

使用它作为pyodbc的直接替换可以使用:

import pypyodbc as pyodbc

[编辑时当前版本的pyodbc3.0.10,它确实支持Python 3.4。当然,如果将来的Python版本发布时,pyodbc再次落后,那么了解pypyodbc仍然很有用

相关问题 更多 >

    热门问题