代码之家  ›  专栏  ›  技术社区  ›  jmissao

Python PostgreSQL模块。哪一个最好?

  •  26
  • jmissao  · 技术社区  · 17 年前

    我已经看到了许多用于python的postgresql模块,比如pygresql、pypgsql、psyco。它们中的大多数都是与Python DB API 2.0兼容的,有些已经不再积极开发了。

    6 回复  |  直到 17 年前
        1
  •  21
  •   Jim os x nerd    17 年前

    psycopg2似乎是最受欢迎的。我从来没有遇到过任何麻烦。实际上,PostgreSQL也有一个纯Python接口,名为 bpgsql . 我不推荐它胜过psycopg2,但它最近已经足够支持Django了,如果您不能编译C模块,它将非常有用。

        2
  •  2
  •   jdcaron    16 年前

    我建议使用Psycopg而不是Psycopg2,因为第一个看起来更暗。至少以我的经验来看。我有一个24/7运行的应用程序,有时我从Psycopg2得到随机内存崩溃(双重释放或损坏错误)。我无法快速或轻松地进行调试,因为这不是Python错误,而是C错误。我刚切换到Pyscopg,之后就没有任何崩溃。

    另外,正如在另一篇帖子中所说, bpgsql 似乎是一个很好的选择。它稳定且易于使用,因为您不需要编译它。唯一不好的一面是库不是线程安全的。

        3
  •  2
  •   Chmod    10 年前

    在过去3年中,我使用pg8000没有任何问题。它是最新的,可以在pypi上使用,并且可以在python2和python3上使用。您可以使用“pip install pg8000”快速获取它(如果您在防火墙后面,请不要忘记使用--proxy=yourproxy:yourport)。

    http://pybrary.net/pg8000/dbapi.html https://www.python.org/dev/peps/pep-0249/ 对于不同级别的线程安全性的定义(尽管我还没有将线程与psql一起使用)。

        4
  •  1
  •   Hugo Mota    9 年前

    根据我的经验,psycopg2是最常用的库。正如您所说,它符合DBAPI2.0标准,提供了一个可靠的界面。

    对于那些认为标准API有点过于冗长且难以使用的人,我制作了一个小型库,可能会有所帮助:

    https://github.com/hugollm/rebel

        5
  •  0
  •   zgoda    17 年前

    Psycopg1在重线程环境(如web应用程序)中的性能比Psycopg2更好,尽管没有维护。两者都写得很好,坚如磐石,我会根据用例选择其中一个。

        6
  •  0
  •   Szymon Lipiński    16 年前

    我只使用psycopg2,没有问题。