安裝與測試

大多數使用者會希望直接安裝 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 checkout 中建置 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 擴充模組,您還需要將 HStore 擴充功能安裝在 postgres 測試資料庫中

-- 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