# Python

# インストール

# c_clientをインストールする

GridDB c_client(Pythonクライアントを使用するための前提条件)はここにあります: https://github.com/griddb/c_client (opens new window)。RPMのダウンロードはこちら (opens new window). 最新のRPMをwgetしてインストールします。

$ wget \
https://github.com/griddb/c_client/releases/download/v4.2.0/griddb_c_client-4.2.0-1.linux.x86_64.rpm

次に、rpmをインストールします

$ sudo rpm -ivh griddb_c_client-4.2.0-1.linux.x86_64.rpm

これで c_clientが/usr/ディレクトリにインストールされ、準備が整いました。

# Python クライアントをインストールする

Pythonクライアントのインストールは少し複雑ですが、それでも簡単です。 まず、GitHubからファイルをダウンロードしましょう。

$ wget \
https://github.com/griddb/python_client/archive/0.8.1.tar.gz

そして、解凍します。

$ tar xvzf 0.8.1.tar.gz

次に、依存するソフトウェアをインストールします。

$ wget https://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz
tar xvfz swig-3.0.12.tar.gz
cd swig-3.0.12
./configure
make 
sudo make install

必要に応じて、pcreをインストールします

$ sudo yum install pcre2-devel.x86_64

次に、Pythonクライアントを make します

$ cd ../python_client
make

Pythonクライアントを作成しようとした時に次のエラーが発生した場合、

/usr/bin/ld: cannot find -lgridstore

簡単に修正できるので心配はありません。 原因は、Makefileがc_clientを指すように設定していないことです。 つまり、c_client/binの場所をLDFLAGSオプションに追加することで問題は解決します

SWIG = swig -DSWIGWORDSIZE64
CXX = g++
ARCH = $(shell arch)
LDFLAGS = -L/home/israel/c_client/bin -lpthread -lrt -lgridstore #added /home/israel/c_client_bin right here
CPPFLAGS = -fPIC -std=c++0x -g -O2
INCLUDES = -Iinclude -Isrc
INCLUDES_PYTHON = $(INCLUDES)   \
                                -I/usr/include/python3.6m
PROGRAM = _griddb_python.so
EXTRA = griddb_python.py griddb_python.pyc
SOURCES =         src/TimeSeriesProperties.cpp \
                  src/ContainerInfo.cpp                 \
                  src/AggregationResult.cpp     \
                  src/Container.cpp                     \
                  src/Store.cpp                 \
                  src/StoreFactory.cpp  \
                  src/PartitionController.cpp   \
                  src/Query.cpp                         \
                  src/QueryAnalysisEntry.cpp                    \
                  src/RowKeyPredicate.cpp       \
                  src/RowSet.cpp                        \
                  src/TimestampUtils.cpp                        \
all: $(PROGRAM)
... snip ...

適切な修正を行うと、makeは意図したとおりに動作するはずです。 次に環境変数を設定します。 適切な場所を指定します。

$ export LIBRARY_PATH=$LIBRARY_PATH:[insert path to c_client]
$ export  PYTHONPATH=$PYTHONPATH:[insert path to python_client]
$ export LIBRARY_PATH=$LD_LIBRARY_PATH:[insert path to c_client/bin]

これで、GridDB Clusterでcとpythonの両方を使用できるようになりました。