用于 keyvaluehosting.com 的 Python 客户端
项目描述
Riak 的 Python 客户端
=======================
构建状态
============
[](https://travis-ci.org/basho/riak-python-client)
文档
======== =====
[Riak Python 客户端库的文档](http://basho.github.io/riak-python-client/index.html) 可用[这里](http://basho.github.io /riak-python-client/index.html)。
Riak 的文档可在 [此处](http://docs.basho.com/riak/latest) 获得。
存储库克隆
===================
*注意*:请使用 `git clone` 的 `--recursive` 参数克隆此存储库,或使用 `git submodule update --init` 跟随克隆。此存储库使用两个子模块。
安装
=======
推荐用于此客户端的 Python 版本是 Python `2.7.8`(或更高版本,`2016-06-21` 的`2.7.11`)、`3.3.x` 、“3.4.x”和“3.5.x”。每个系列的最新版本应该是首选。应谨慎使用较旧版本的 Python `2.7.X` 和 `3.X` 系列,因为它们未包含在集成测试中。
Riak TS (Timeseries)
===================
您必须使用 `2.7.11`、`3.4.4` 或 `3.5.1` 版本(或更高版本的版本系列)。否则你会受到 [this Python bug](https://bugs.python.org/issue23517) 的影响。
从源头
-----------
```sh
python setup.py install
```
Python包`setuptools`和`protobuf`有额外的依赖。
从 PyPI
---------
官方包被签名并发布到 [PyPI](https://pypi.python.org/pypi/riak)。
要直接从 [PyPI](https://pypi.python.org/pypi/riak) 安装,您可以使用 `pip`。
```sh
pip install riak
```
测试
=======
要设置默认测试配置,构建一个测试 Riak 节点(从 `riak` 目录)
```sh
make rel
```
参见 [基本集群设置](http://docs.basho.com/riak/latest/ops/building/basic-cluster-setup/) 了解更多详情。
对于所有简单的默认值,将 `RIAK_DIR` 环境变量设置为 Riak 安装的根目录。然后从 `riak-python-client` 目录
```sh
make -C buildbot preconfigure
```
使用 Riak 目录中的 `riak start` 启动你的 Riak 节点,然后
```sh
make -C buildbot configure
make - C buildbot test
```
这将运行测试套件两次:一次启用安全性,一次未启用。
测试中与 Riak 的连接
----------------------------
如果您的 Riak 服务器未在 localhost 上运行,或者您从源代码构建了 Riak devrel,请使用环境变量 `RIAK_TEST_HOST`、`RIAK_TEST_HTTP_PORT` 和 `RIAK_TEST_PB_PORT` 来指定查找 Riak 服务器的位置。`RIAK_TEST_PROTOCOL` 指定要测试的协议。可以是“pbc”或“http”。
一些连接测试需要未使用的端口号。如果您的测试系统上正在使用端口 1023 和 1022,请将环境变量 `DUMMY_HTTP_PORT` 和 `DUMMY_PB_PORT` 设置为未使用的端口号。
测试搜索
--------------
如果您没有启用 [Riak Search](http://docs.basho.com/riak/latest/dev/using/search/),您可以将 `RUN_SEARCH` 环境变量设置为 0 跳过这些测试。
如果您没有启用 [Search 2.0](https://github.com/basho/yokozuna),您可以将 `RUN_YZ` 环境变量设置为 0 以跳过这些测试。
测试桶类型 (Riak 2+)
------------------------------
要测试桶类型,您必须运行`create_bucket_types ` setup 命令,它将创建用于测试的存储桶类型,或者您自己手动创建它们。它可以像这样运行(用你的 Riak 安装的根目录替换 `$RIAK`)
```sh
./setup.py create_bucket_types --riak-admin=$RIAK/bin/riak-admin
```
你可以交替将这些行添加到 `setup.cfg`
```ini
[create_bucket_types]
riak-admin=/Users/sean/dev/riak/rel/riak/bin/riak-admin
```
要跳过存储桶类型测试,请将“RUN_BTYPES”环境变量设置为“0”。
测试数据类型 (Riak 2+)
----------------
要测试数据类型,您必须设置存储桶类型(见上文.)
要跳过数据类型测试,请将 `RUN_DATATYPES` 环境变量设置为 `0`。
测试时间序列 (Riak 2.1+)
------------------------------
要测试时间序列数据,您必须运行 `setup_timeseries` 命令,这将创建用于测试的存储桶类型,或者您自己手动创建它们。它可以像这样运行(用你的 Riak 安装的根目录替换 `$RIAK`)
```sh
./setup.py setup_timeseries --riak-admin=$RIAK/bin/riak-admin
```
你可以交替将这些行添加到 `setup.cfg`
```sh
[setup_timeseries] riak
-admin=/Users/sean/dev/riak/rel/riak/bin/riak-admin
```
要启用时间序列测试,请将 `RUN_TIMESERIES` 环境变量设置为 `1`。
测试二级索引
-------------
测试 [二级索引](http://docs.basho.com/riak/latest/dev /using/2i/),`RUN_INDEXES` 环境变量必须设置为 1(或 0 以跳过它们。)
测试安全性(Riak 2+)
----------------- ---------
确保主机名 `riak-test` 解析为您的 Riak 主机(很可能是 `localhost`)。这样 SSL 主机验证才能成功。
默认情况下,Riak 上未启用 [Security](http://docs.basho.com/riak/latest/ops/running/authz/)。一旦在 `riak.conf` 文件中配置了 `security = on`,就可以使用 `riak-admin` 启用它。
运行测试
```sh
RUN_SECURITY=1 RIAK_TEST_HTTP_PORT=18098 python setup.py test
```
贡献者
--------------------------
* Andrew Thompson
* Andy Gross
* Armon Dadgar
* Brett Hazen
* Brett Hoerner
* Brian Roach
* Bryan Fink
* Daniel Lindsley
* Daniel Néri
* Daniel Reverri
* [Dan Root](https://github.com/daroot)
* [David Basden] (https://github.com/dbasden)
* [大卫德拉苏斯](https://github.com/linkdd)
* David Koblas
* Dmitry Rozhkov
* Eric Florenzano
* Eric Moritz
* Filip de Waard
* Gilles Devaux
* Greg Nelson
* Gregory Burd
* Greg Stein
* Ian Plosker
* Jayson Baird
* Jeffrey Massung
* Jon Meredith
* Josip Lisec
* Justin Sheehy
* Kevin Smith
* [Luke Bakken](https://github.com/lukebakken)
* Mark Erdmann
* Mark Phillips
* Mathias Meyer
* Matt Heitzenroder
* [Matt Lohier](https://github.com/aquam8)
* Mikhail Sobolev
* Reid Draper
*罗素布朗
* 生锈的克洛普豪斯
* 生锈的克洛普豪斯
* 斯科特 Lystig Fritchie
* Sean Cribbs
* Shuhao Wu
* Silas Sewell
* Socrates Lee
* Soren Hansen
* Sreejith Kesavan
* Timothée Peignier
* [Vitaly Shestovskiy](https://github.com/lamp0chka)
* William Kral
* [Yasser Souri](https:// github.com/yassersouri)
=======================
构建状态
============
[](https://travis-ci.org/basho/riak-python-client)
文档
======== =====
[Riak Python 客户端库的文档](http://basho.github.io/riak-python-client/index.html) 可用[这里](http://basho.github.io /riak-python-client/index.html)。
Riak 的文档可在 [此处](http://docs.basho.com/riak/latest) 获得。
存储库克隆
===================
*注意*:请使用 `git clone` 的 `--recursive` 参数克隆此存储库,或使用 `git submodule update --init` 跟随克隆。此存储库使用两个子模块。
安装
=======
推荐用于此客户端的 Python 版本是 Python `2.7.8`(或更高版本,`2016-06-21` 的`2.7.11`)、`3.3.x` 、“3.4.x”和“3.5.x”。每个系列的最新版本应该是首选。应谨慎使用较旧版本的 Python `2.7.X` 和 `3.X` 系列,因为它们未包含在集成测试中。
Riak TS (Timeseries)
===================
您必须使用 `2.7.11`、`3.4.4` 或 `3.5.1` 版本(或更高版本的版本系列)。否则你会受到 [this Python bug](https://bugs.python.org/issue23517) 的影响。
从源头
-----------
```sh
python setup.py install
```
Python包`setuptools`和`protobuf`有额外的依赖。
从 PyPI
---------
官方包被签名并发布到 [PyPI](https://pypi.python.org/pypi/riak)。
要直接从 [PyPI](https://pypi.python.org/pypi/riak) 安装,您可以使用 `pip`。
```sh
pip install riak
```
测试
=======
要设置默认测试配置,构建一个测试 Riak 节点(从 `riak` 目录)
```sh
make rel
```
参见 [基本集群设置](http://docs.basho.com/riak/latest/ops/building/basic-cluster-setup/) 了解更多详情。
对于所有简单的默认值,将 `RIAK_DIR` 环境变量设置为 Riak 安装的根目录。然后从 `riak-python-client` 目录
```sh
make -C buildbot preconfigure
```
使用 Riak 目录中的 `riak start` 启动你的 Riak 节点,然后
```sh
make -C buildbot configure
make - C buildbot test
```
这将运行测试套件两次:一次启用安全性,一次未启用。
测试中与 Riak 的连接
----------------------------
如果您的 Riak 服务器未在 localhost 上运行,或者您从源代码构建了 Riak devrel,请使用环境变量 `RIAK_TEST_HOST`、`RIAK_TEST_HTTP_PORT` 和 `RIAK_TEST_PB_PORT` 来指定查找 Riak 服务器的位置。`RIAK_TEST_PROTOCOL` 指定要测试的协议。可以是“pbc”或“http”。
一些连接测试需要未使用的端口号。如果您的测试系统上正在使用端口 1023 和 1022,请将环境变量 `DUMMY_HTTP_PORT` 和 `DUMMY_PB_PORT` 设置为未使用的端口号。
测试搜索
--------------
如果您没有启用 [Riak Search](http://docs.basho.com/riak/latest/dev/using/search/),您可以将 `RUN_SEARCH` 环境变量设置为 0 跳过这些测试。
如果您没有启用 [Search 2.0](https://github.com/basho/yokozuna),您可以将 `RUN_YZ` 环境变量设置为 0 以跳过这些测试。
测试桶类型 (Riak 2+)
------------------------------
要测试桶类型,您必须运行`create_bucket_types ` setup 命令,它将创建用于测试的存储桶类型,或者您自己手动创建它们。它可以像这样运行(用你的 Riak 安装的根目录替换 `$RIAK`)
```sh
./setup.py create_bucket_types --riak-admin=$RIAK/bin/riak-admin
```
你可以交替将这些行添加到 `setup.cfg`
```ini
[create_bucket_types]
riak-admin=/Users/sean/dev/riak/rel/riak/bin/riak-admin
```
要跳过存储桶类型测试,请将“RUN_BTYPES”环境变量设置为“0”。
测试数据类型 (Riak 2+)
----------------
要测试数据类型,您必须设置存储桶类型(见上文.)
要跳过数据类型测试,请将 `RUN_DATATYPES` 环境变量设置为 `0`。
测试时间序列 (Riak 2.1+)
------------------------------
要测试时间序列数据,您必须运行 `setup_timeseries` 命令,这将创建用于测试的存储桶类型,或者您自己手动创建它们。它可以像这样运行(用你的 Riak 安装的根目录替换 `$RIAK`)
```sh
./setup.py setup_timeseries --riak-admin=$RIAK/bin/riak-admin
```
你可以交替将这些行添加到 `setup.cfg`
```sh
[setup_timeseries] riak
-admin=/Users/sean/dev/riak/rel/riak/bin/riak-admin
```
要启用时间序列测试,请将 `RUN_TIMESERIES` 环境变量设置为 `1`。
测试二级索引
-------------
测试 [二级索引](http://docs.basho.com/riak/latest/dev /using/2i/),`RUN_INDEXES` 环境变量必须设置为 1(或 0 以跳过它们。)
测试安全性(Riak 2+)
----------------- ---------
确保主机名 `riak-test` 解析为您的 Riak 主机(很可能是 `localhost`)。这样 SSL 主机验证才能成功。
默认情况下,Riak 上未启用 [Security](http://docs.basho.com/riak/latest/ops/running/authz/)。一旦在 `riak.conf` 文件中配置了 `security = on`,就可以使用 `riak-admin` 启用它。
运行测试
```sh
RUN_SECURITY=1 RIAK_TEST_HTTP_PORT=18098 python setup.py test
```
贡献者
--------------------------
* Andrew Thompson
* Andy Gross
* Armon Dadgar
* Brett Hazen
* Brett Hoerner
* Brian Roach
* Bryan Fink
* Daniel Lindsley
* Daniel Néri
* Daniel Reverri
* [Dan Root](https://github.com/daroot)
* [David Basden] (https://github.com/dbasden)
* [大卫德拉苏斯](https://github.com/linkdd)
* David Koblas
* Dmitry Rozhkov
* Eric Florenzano
* Eric Moritz
* Filip de Waard
* Gilles Devaux
* Greg Nelson
* Gregory Burd
* Greg Stein
* Ian Plosker
* Jayson Baird
* Jeffrey Massung
* Jon Meredith
* Josip Lisec
* Justin Sheehy
* Kevin Smith
* [Luke Bakken](https://github.com/lukebakken)
* Mark Erdmann
* Mark Phillips
* Mathias Meyer
* Matt Heitzenroder
* [Matt Lohier](https://github.com/aquam8)
* Mikhail Sobolev
* Reid Draper
*罗素布朗
* 生锈的克洛普豪斯
* 生锈的克洛普豪斯
* 斯科特 Lystig Fritchie
* Sean Cribbs
* Shuhao Wu
* Silas Sewell
* Socrates Lee
* Soren Hansen
* Sreejith Kesavan
* Timothée Peignier
* [Vitaly Shestovskiy](https://github.com/lamp0chka)
* William Kral
* [Yasser Souri](https:// github.com/yassersouri)