安装和测试

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

pip install peewee

Peewee 带有几个 C 扩展,如果 Cython 可用,则会构建这些扩展。

  • Sqlite 扩展,其中包括 SQLite 日期处理函数、REGEXP 运算符和全文搜索结果排名算法的 Cython 实现。

使用 git 安装

该项目托管在 https://github.com/coleifer/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 运行测试,您需要创建一个名为“peewee_test”的数据库。要测试 Postgres 扩展模块,您还需要在 postgres 测试数据库中安装 HStore 扩展

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

可选依赖项

注意

要使用 Peewee,您通常不需要标准库以外的任何内容,因为大多数 Python 发行版都编译了 SQLite 支持。您可以通过在 Python 控制台中运行 import sqlite3 来进行测试。如果您希望使用其他数据库,那么有很多与 DB-API 2.0 兼容的驱动程序,例如 pymysqlpsycopg2(分别用于 MySQL 和 Postgres)。

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

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

  • geventSqliteQueueDatabase 的可选依赖项(尽管它与 threading 配合良好)。

  • BerkeleyDB 可以与 SQLite 前端一起编译,该前端与 Peewee 配合使用。编译可能很棘手,因此 这里有说明

  • 最后,如果你使用 Flask 框架,则可以使用辅助扩展模块。

关于 SQLite 扩展的说明

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

但是,如果你在尝试安装 Peewee 时收到以下错误,则可以通过设置 NO_SQLITE 环境变量来显式禁用 SQLite C 扩展的编译。

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

以下是如何在显式禁用 SQLite 扩展的情况下安装 Peewee

$ NO_SQLITE=1 python setup.py install