安装和测试

大多数用户只需安装Pypi上托管的最新版本:

pip install peewee

Peewee附带了几个C扩展,如果Cython可用的话,这些扩展将被构建。

  • sqlite扩展,包括sqlite日期操作函数的cython实现、regexp运算符和全文搜索结果排名算法。

使用Git安装

该项目位于https://github.com/coliefer/peewee,可以使用git安装:

git clone https://github.com/coleifer/peewee.git
cd peewee
python setup.py install

注解

在某些系统上,您可能需要使用 sudo python setup.py install 在整个系统范围内安装Peewee。

如果要在Git签出中生成sqlite扩展,可以运行:

# Build the C extension and place shared libraries alongside other modules.
python setup.py build_ext -i

运行试验

您可以通过运行测试套件来测试安装。

python runtests.py

您可以使用 runtests.py 脚本。要查看可用的测试运行程序选项,请使用:

python runtests.py --help

注解

要对Postgres或MySQL运行测试,您需要创建一个名为“peeweeu-test”的数据库。要测试Postgres扩展模块,您还需要在Postgres测试数据库中安装hstore扩展:

-- install the hstore extension on the peewee_test postgres db.
CREATE EXTENSION hstore;

可选依赖项

注解

要使用peewee,通常不需要标准库之外的任何东西,因为大多数python发行版都是使用sqlite支持编译的。你可以通过跑步来测试 import sqlite3 在python控制台中。如果您希望使用另一个数据库,那么有许多与DB-API 2.0兼容的驱动程序,例如 pymysqlpsycopg2 分别针对mysql和postgres。

  • Cython :用于在使用sqlite时公开附加功能,并以性能方式实现搜索结果排名等功能。由于生成的C文件包含在包分发中,因此不再需要Cython使用C扩展名。

  • apsw :可选的第三方SQLite绑定,为SQLite的C API提供更高的性能和全面的支持。使用与 APSWDatabase .

  • gevent 是的可选依赖项 SqliteQueueDatabase (尽管它与 threading 很好。

  • BerkeleyDB 可以使用sqlite前端编译,它与peewee一起工作。编译可能很棘手,因此 here are instructions .

  • 最后,如果使用 Flask 框架,有助手扩展模块可用。

关于sqlite扩展的说明

Peewee包含两个特定于sqlite的C扩展,为sqlite数据库用户提供额外的功能和改进的性能。Peewee将尝试提前确定是否安装了sqlite3,并且仅在系统上有sqlite共享库时构建sqlite扩展。

但是,如果在尝试安装peewee时收到如下错误,则可以通过设置 NO_SQLITE 环境变量。

fatal error: sqlite3.h: No such file or directory

以下是如何在显式禁用sqlite扩展的情况下安装peewee:

$ NO_SQLITE=1 python setup.py install