问题描述
我知道 pyodbc 是一个较旧的项目,可能功能更强大,功能更强大,但是在那里有关其设计的任何信息(基于已编译的C代码的组件),将使其优于纯Python实现,例如 pypyodbc ?
I know pyodbc is an older project and probably more featureful and robust, but is there anything about its design (based on components of compiled C code), that would make it preferable to a pure Python implementation, such as pypyodbc?
我做了很多ETL工作,并且正在考虑从Linux/Jython/JDBC方法切换到Windows/Cygwin/Python/ODBC方法.
I do a lot of ETL work and am thinking of switching from a Linux/Jython/JDBC approach to Windows/Cygwin/Python/ODBC approach.
推荐答案
用C语言编写的pyodbc
优于pypyodbc
的潜在优势是:
Potential advantages of pyodbc
over pypyodbc
by being written in C would be:
- 速度-请参见 pypyodbc Wiki比较
- 更保守的内存使用量
用Python编写的pypyodbc
优于pyodbc
的潜在优势是:
Potential advantages of pypyodbc
over pyodbc
by written in Python would be:
- 极少包含C指针问题
- 包含内存分配问题的可能性较小
- 易于维护;高级语言意味着更少的代码行
- 没有编译问题的安装要容易得多,而编译问题需要针对不同版本的Python,平台等进行单独构建
成熟的优势:
- 更少的错误
- 更全面的功能介绍
- 更好地处理角落案件
成熟度很大程度上取决于pyodbc
不是越野车.以我的经验,这是不正确的,它有一个大量的内存泄漏错误等.并查看此答案的注释-有证据表明pyodbc
可能会引起很大问题.
The maturity thing is largely dependent on pyodbc
not being buggy. In my experience that is not true and it has had a fair number of memory leak bugs etc. And see comments on this answer - there is evidence that pyodbc
can be quite problematic.
作者声称pypyodbc
是Python中pyodbc
代码的重新实现,这意味着功能覆盖范围应等效.不过,在某些较新的代码中可能还没有尝试过一些极端的情况.
The author's claim is that pypyodbc
is a reimplementation of the pyodbc
code in Python, and that would mean that the feature coverage should be equivalent. There may be some corner cases that have been less tried in the newer code though.
免责声明:我尚未尝试过pypyodbc
Disclaimer: I haven't yet tried pypyodbc
这篇关于与pypyodbc相比,pyodbc有什么设计优势吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!