15

我知道pyodbc是一个较旧的项目,可能更具功能性和健壮性,但是它的设计(基于已编译的 C 代码的组件)有什么东西可以使它比纯 Python 实现更可取,例如pypyodbc

我做了很多 ETL 工作,并且正在考虑从 Linux/Jython/JDBC 方法切换到 Windows/Cygwin/Python/ODBC 方法。

4

1 回答 1

10

用 C 语言编写的pyodbcover的潜在优势是:pypyodbc

用 Python 编写的pypyodbcover by 的潜在优势是:pyodbc

  • 不太可能包含 C 指针问题
  • 不太可能包含内存分配问题
  • 维护更简单;高级语言意味着更少的代码行
  • 安装起来更容易,没有编译问题,需要为不同版本的 Python、平台等单独构建

成熟的优势:

  • 更少的错误
  • 更全面的功能覆盖
  • 更好地处理极端情况

成熟度很大程度上取决于pyodbc不出错。在我过去的经验(大约 2016 年)中,这是不正确的,它有相当多的内存泄漏错误等。但从那以后 pyodbc 得到了显着改进,现在得到了适当的维护

作者声称这pypyodbc是对pyodbcPython 代码的重新实现,这意味着特征覆盖率应该是等效的。不过,在较新的代码中可能存在一些很少尝试的极端情况。

免责声明:我还没有尝试过pypyodbc

于 2015-04-13T14:29:02.743 回答