kintone 用 Python ライブラリの pykintone を Windows Subsystem for Linux で試してみた。
pip3 で pykintone をインストールすると使用できる。
pykintone 使用環境の準備
- pip3 のインストール
- pykintone のインストール
Windows Subsystem for Linux の Python 環境
下記が標準でインストールされている。
python : python2.7
python3 : python3.4
rex0220@EDGE-E470:~$ ll /usr/bin/python*
lrwxrwxrwx 1 root root 9 12月 21 2013 /usr/bin/python -> python2.7*
lrwxrwxrwx 1 root root 9 12月 21 2013 /usr/bin/python2 -> python2.7*
-rwxr-xr-x 1 root root 975 1月 2 2014 /usr/bin/python2-jsondiff*
-rwxr-xr-x 1 root root 1080 1月 2 2014 /usr/bin/python2-jsonpatch*
-rwxr-xr-x 1 root root 3345416 6月 23 2015 /usr/bin/python2.7*
lrwxrwxrwx 1 root root 9 3月 23 2014 /usr/bin/python3 -> python3.4*
lrwxrwxrwx 1 root root 16 3月 23 2014 /usr/bin/python3-config -> python3.4-config*
-rwxr-xr-x 2 root root 3693624 11月 17 11:31 /usr/bin/python3.4*
lrwxrwxrwx 1 root root 33 11月 17 11:31 /usr/bin/python3.4-config -> x86_64-linux-gnu-python3.4-config*
-rwxr-xr-x 2 root root 3693624 11月 17 11:31 /usr/bin/python3.4m*
lrwxrwxrwx 1 root root 34 11月 17 11:31 /usr/bin/python3.4m-config -> x86_64-linux-gnu-python3.4m-config*
lrwxrwxrwx 1 root root 10 3月 23 2014 /usr/bin/python3m -> python3.4m*
lrwxrwxrwx 1 root root 17 3月 23 2014 /usr/bin/python3m-config -> python3.4m-config*
pip3 のインストール
pip3 (Pythonのパッケージ管理システム) は、インストールされていないので、インストール。
sudo apt-get install python3-pip
パッケージリストを読み込んでいます... 完了0%
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
...
python3-pip (1.5.4-1ubuntu4) を設定しています ...
python3-wheel (0.24.0-1~ubuntu1) を設定しています ...
libc-bin (2.19-0ubuntu6.9) のトリガを処理しています ...
which pip3
/usr/bin/pip3
pykintone のインストール
sudo pip3 install pykintone
Downloading/unpacking pykintone
Downloading pykintone-0.3.9.zip
Running setup.py (path:/tmp/pip_build_root/pykintone/setup.py) egg_info for package pykintone
Downloading/unpacking PyYAML (from pykintone)
Downloading PyYAML-3.12.tar.gz (253kB): 253kB downloaded
Running setup.py (path:/tmp/pip_build_root/PyYAML/setup.py) egg_info for package PyYAML
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/python3/dist-packages (from pykintone)
Downloading/unpacking pytz (from pykintone)
Downloading pytz-2016.10-py2.py3-none-any.whl (483kB): 483kB downloaded
Downloading/unpacking tzlocal (from pykintone)
Downloading tzlocal-1.3.tar.gz
Running setup.py (path:/tmp/pip_build_root/tzlocal/setup.py) egg_info for package tzlocal
Installing collected packages: pykintone, PyYAML, pytz, tzlocal
Running setup.py install for pykintone
Running setup.py install for PyYAML
checking if libyaml is compilable
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.4m -c build/temp.linux-x86_64-3.4/check_libyaml.c -o build/temp.linux-x86_64-3.4/check_libyaml.o
build/temp.linux-x86_64-3.4/check_libyaml.c:2:18: fatal error: yaml.h: そのようなファイルやディレクトリはありません
#include <yaml.h>
^
compilation terminated.
libyaml is not found or a compiler error: forcing --without-libyaml
(if libyaml is installed correctly, you may need to
specify the option --include-dirs or uncomment and
modify the parameter include_dirs in setup.cfg)
Running setup.py install for tzlocal
Successfully installed pykintone PyYAML pytz tzlocal
Cleaning up...
レコード取得スクリプト作成
サンプルに従い、レコード取得スクリプト作成。
getRec1.py
import pykintone
r = pykintone.app("kintoneドメイン", "APPID", "APIトークン").select("")
if r.ok:
records = r.records
print(records)
else:
print(r.error)
レコード取得スクリプト実行
レコードが取得され、標準出力に表示された。
python3 getRec1.py
[{'作成者': {'value': {'name': 'Alex2013', 'code': 'Alex2013'}, 'type': 'CREATOR'}, '文字列A': {'value': 'B02A', 'type': 'SINGLE_LINE_TEXT'}, '作成日時': {'value': '2017-01-26T15:47:00Z', 'type': 'CREATED_TIME'}, '文字列B': {'value': 'B02B', 'type': 'SINGLE_LINE_TEXT'}, '文字列2_3': {'value': 'B02C', 'type': 'SINGLE_LINE_TEXT'}, '更新者': {'value': {'name': 'Alex2013', 'code': 'Alex2013'}, 'type': 'MODIFIER'}, '文字列2_2': {'value': 'B02B', 'type': 'SINGLE_LINE_TEXT'}, 'レコード番号': {'value': '2', 'type': 'RECORD_NUMBER'}, '文字列1_1': {'value': 'A02A', 'type': 'SINGLE_LINE_TEXT'}, '更新日時': {'value': '2017-01-26T23:49:00Z', 'type': 'UPDATED_TIME'}, 'ルックアップA': {'value': 'A02', 'type': 'SINGLE_LINE_TEXT'}, '文字列1_3': {'value': 'A02C', 'type': 'SINGLE_LINE_TEXT'}, 'ID': {'value': 'jj', 'type': 'SINGLE_LINE_TEXT'}, '文字列1_4': {'value': 'A02D', 'type': 'SINGLE_LINE_TEXT'}, '文字列1_2': {'value': 'A02B', 'type': 'SINGLE_LINE_TEXT'}, '$revision': {'value': '4', 'type': '__REVISION__'}, '文字列2_4': {'value': 'B02', 'type': 'SINGLE_LINE_TEXT'}, '$id': {'value': '2', 'type': '__ID__'}, '文字列C': {'value': 'B02C', 'type': 'SINGLE_LINE_TEXT'}, '文字列2_1': {'value': 'B02A', 'type': 'SINGLE_LINE_TEXT'}, 'ルックアップB': {'value': 'B02', 'type': 'SINGLE_LINE_TEXT'}, '文字列D': {'value': 'B02', 'type': 'SINGLE_LINE_TEXT'}}, {'作成者': {'value': {'name': 'Alex2013', 'code': 'Alex2013'}, 'type': 'CREATOR'}, '文字列A': {'value': 'B01A', 'type': 'SINGLE_LINE_TEXT'}, '作成日時': {'value': '2017-01-26T12:06:00Z', 'type': 'CREATED_TIME'}, '文字列B': {'value': 'B01B', 'type': 'SINGLE_LINE_TEXT'}, '文字列2_3': {'value': 'B01C', 'type': 'SINGLE_LINE_TEXT'}, '更新者': {'value': {'name': 'Alex2013', 'code': 'Alex2013'}, 'type': 'MODIFIER'}, '文字列2_2': {'value': 'B01B', 'type': 'SINGLE_LINE_TEXT'}, 'レコード番号': {'value': '1', 'type': 'RECORD_NUMBER'}, '文字列1_1': {'value': 'A01A', 'type': 'SINGLE_LINE_TEXT'}, '更新日時': {'value': '2017-01-26T12:06:00Z', 'type': 'UPDATED_TIME'}, 'ルックアップA': {'value': 'A01', 'type': 'SINGLE_LINE_TEXT'}, '文字列1_3': {'value': 'A01C', 'type': 'SINGLE_LINE_TEXT'}, 'ID': {'value': 'C01', 'type': 'SINGLE_LINE_TEXT'}, '文字列1_4': {'value': 'A01D', 'type': 'SINGLE_LINE_TEXT'}, '文字列1_2': {'value': 'A01B', 'type': 'SINGLE_LINE_TEXT'}, '$revision': {'value': '1', 'type': '__REVISION__'}, '文字列2_4': {'value': 'B01D', 'type': 'SINGLE_LINE_TEXT'}, '$id': {'value': '1', 'type': '__ID__'}, '文字列C': {'value': 'B01C', 'type': 'SINGLE_LINE_TEXT'}, '文字列2_1': {'value': 'B01A', 'type': 'SINGLE_LINE_TEXT'}, 'ルックアップB': {'value': 'B01', 'type': 'SINGLE_LINE_TEXT'}, '文字列D': {'value': 'B01D', 'type': 'SINGLE_LINE_TEXT'}}]