pyodbc比pypyodbc有任何设计优势吗?

Ton*_*ony 14 python odbc etl pyodbc pypyodbc

我知道pyodbc是一个较旧的项目,可能更具特色和强大,但它的设计是什么(基于编译的C代码的组件),这会使它优于纯Python实现,如pypyodbc

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

Dav*_*ser 8

的潜在优势pyodbcpypyodbc通过被写在C是:

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

  • 不太可能包含C指针问题
  • 稍微不太可能包含内存分配问题
  • 更易于维护; 更高级别的语言意味着更少的代码行
  • 在没有编译问题的情况下安装要容易得多,这些问题需要为不同版本的Python,平台等单独构建

成熟的优点:

  • 更少的错误
  • 更全面的功能报道
  • 更好地处理角落案件

成熟的事情在很大程度上取决于pyodbc没有错误.根据我的经验,这是不正确的,它有相当数量的内存泄漏错误等.并且看到对这个答案的评论 - 有证据表明这pyodbc可能是非常有问题的.

作者声称这pypyodbcpyodbcPython中代码的重新实现,这意味着功能覆盖应该是等效的.可能会有一些极端情况在较新的代码中尝试较少.

免责声明:我还没试过 pypyodbc

  • 我的印象是,每次发布新版本的Python时,都需要重新编译pyodbc。当然,当我尝试在具有Python 3.4的(Windows)计算机上安装最新版本的pyodbc时,pyodbc安装程序抱怨说找不到Python 3.3。我没有摆弄它,而是安装了pypyodbc(通过pip),并且工作正常。此外,我在SO上看到了许多案例,这些案例中,通过转移到pypyodbc解决了pyodbc的问题。 (3认同)