Python PostgreSQL模块。哪个最好?

时间:2020-03-06 14:49:54  来源:igfitidea点击:

我见过许多用于python的PostgreSQL模块,例如pygresql,pypgsql,psyco。它们中的大多数都符合Python DB API 2.0的要求,有些则没有得到积极开发。
我们推荐哪个模块?为什么?

解决方案

psycopg2似乎是最受欢迎的。我从来没有遇到任何麻烦。 PostgreSQL实际上也有一个纯Python接口,称为bpgsql。我不建议在psycopg2上使用它,但是最近它已经足够支持Django,并且在无法编译C模块的情况下很有用。

尽管没有维护,但Psycopg1在高线程环境(如Web应用程序)中的性能要优于Psycopg2. 两者都写得很好并且坚如磐石,我会根据用例选择这两者之一。

我建议使用Psycopg而不是Psycopg2,因为第一个似乎更稳定。至少以我的经验。我有一个运行24/7的应用程序,有时我从Psycopg2获得随机内存崩溃(两次释放或者损坏错误)。我无法快速或者轻松地进行调试,因为它不是Python错误,而是C错误。我刚切换到Pyscopg,此后没有任何崩溃。

另外,正如另一篇文章中所述,bpgsql似乎是一个很好的选择。它稳定且易于使用,因为我们无需对其进行编译。唯一的缺点是库不是线程安全的。

Pygresql看起来不错,有一种使用该库查询数据库的更直接的方法。但是我不知道这是多么稳定。

我只使用了psycopg2,并且没有任何问题。