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的安装版本?
你试过从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:
使用它作为pyodbc的直接替换可以使用:
[编辑时当前版本的
pyodbc
是3.0.10,它确实支持Python 3.4。当然,如果将来的Python版本发布时,pyodbc
再次落后,那么了解pypyodbc
仍然很有用相关问题 更多 >
编程相关推荐