安装和测试
大多数用户只需安装托管在 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 兼容的驱动程序,例如 pymysql
或 psycopg2
(分别用于 MySQL 和 Postgres)。
Cython:用于在使用 SQLite 时公开附加功能,并以高性能的方式实现搜索结果排名等功能。由于生成的 C 文件包含在软件包发行版中,因此不再需要 Cython 来使用 C 扩展。
apsw:一个可选的第三方 SQLite 绑定,为 SQLite 的 C API 提供更高的性能和全面的支持。与
APSWDatabase
一起使用。gevent 是
SqliteQueueDatabase
的可选依赖项(尽管它与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