Python
AmazonLinux
Blockchain
NEM

amazon linuxでpythonのNEM開発環境を爆速で整える

NEMの開発環境整えるシリーズ!

php版が出てきたので、python版の環境構築方法をお伝えします。
使うライブラリはtipnem-botでおなじみなむやんさんのnamuyan/nem-pythonです。

ソースコードはこちらにあります。
https://github.com/namuyan/nem-python

ただし、これpython3が必要です。そうです、amazon linuxのデフォルト設定では動きません。なのでpythonのインストールとpip環境を再整備する必要があります。
ここに少しだけテクニックが必要ですが、慣れればあとは大したことありません(うん、どこかで聞いたセリフ?)

まずはおきまりのyum関連

sudo yum update
sudo yum install gcc gcc-c++ python36* git -y

次にpython のバージョンを切り替えます。

sudo alternatives --config python

  選択       コマンド
-----------------------------------------------
*  1           /usr/bin/python2.7
 + 2           /usr/bin/python3.6

ここで2を選択

次にamazon linuxに標準で入っているpip9を削除します。
ここは時代に合わせてバージョンを置き換えてください。
(コアな部分から実行ファイルを削除するのでここからは自己責任です)

sudo rm -rf /usr/lib/python2.7/dist-packages/pip-9.0.3.egg-info
sudo rm -rf /usr/bin/pip*

pip10 をインストールします。
僕の好みですが、ユーザーレベルでインストールします。
将来的にポート80でサーバを立てたい方は管理者権限でインストールした方がよいかもしれません。

mkdir downloads
cd downloads
wget "https://bootstrap.pypa.io/get-pip.py"
python get-pip.py --user
pip install --upgrade pip --user
cd ..

nem_python の開発環境を整えます。

mkdir python_app
cd python_app/

git clone --depth 1 https://github.com/namuyan/nem-python.git
cd nem-python/

pip install requests --user
pip install nem_ed25519 --user
pip install bjson --user


これで準備は完了です!さあ、実行してみましょう!

python

Python 3.6.5 (default, Apr 26 2018, 00:14:31) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.

>>>from nem_python.nem_connect import NemConnect
>>>nem = NemConnect(main_net=True)
>>>nem.get_account_info(ck='NCR2CQE6AI3DIRHPHEPBSVDBOQFSHXFSQF4NIUAH')
{'meta': {'cosignatories': [], 'cosignatoryOf': [], 'status': 'LOCKED', 'remoteStatus': 'INACTIVE'}, 'account': {'address': 'NCR2CQE6AI3DIRHPHEPBSVDBOQFSHXFSQF4NIUAH', 'harvestedBlocks': 32, 'balance': 133529613776, 'importance': 2.6266994070564825e-05, 'vestedBalance': 130540323012, 'publicKey': 'a7d9eec00e192cdb82df471a7804974c85ba282f7f4272ec5a5dc8f640f267d3', 'label': None, 'multisigInfo': {}}}

取れましたね。この記事書きながら15分ぐらいで環境構築が終わりましたね。

基本的な使い方はここに書いてあります。
https://github.com/namuyan/nem-python/blob/master/doc/BASIC-USAGE.md

もちろんトランザクションの発行も可能ですので、今まで培ってきたpythonのノウハウがそのままNEM開発に使えます。

何かできたらまた教えてくださいねー。
それでは!