【SteamSQL】IntelliJを使ってPythonからSteemSQLを実行するのにはどうすればよいか / How to use SteemSQL with Python using IntelliJ

in #japanese6 years ago

AdobeStock_60623220.jpeg

スティーミアンの皆様、本日もSteemitを通じてのプログラミングハックを楽しんでいますでしょうか。本コーナーではサーバサイド&ブロックチェーンエンジニアであるtamito0201(たみと)がプログラミングを行う上での有益な情報を皆様に公開していきたいと考えています。

先日、@shogoさんが「PythonによるSteemSQLの利用方法」という記事を投稿して下さいました。この記事ではPythonをコーディングしSteemSQLへの情報取得の具体的なソースコードが紹介されておりました。

スティーミアンの皆様、IntelliJ IDEA(インテリジェイ アイディア)の使い方を学習しましたのでそのIDEを使って@shogoさんのプログラミングを動かしてみましょう。

IntelliJ IDEAのインストール方法については以下を参照してください。

Pythonのインストール方法については以下を参照してください。

@shogoさんがご紹介したPythonソースを使ってSteemSQLを動かすために事前準備としてODBCドライバーをインストールします。SteemSQLにPythonソースから接続するには、お使いのコンピュータにODBCドライバをインストールする必要があるためです。

1. ODBCドライバーのインストール

line1.gif



ODBC Driver for SQL Server のダウンロードページからインストーラーをダウンロードします。

WindowsやLinux、macOS毎にインストーラーが異なりますのでご自身の環境に合ったインストーラーをタウンロードします。

1.png

言語の選択画面に遷移しますので、「Japanese」を選択し、ダウンロードボタンをクリックします。

2.png

まだダウンロードは始まりません。ダウンロードするご自身の環境のOSが32bitマシンか64ビットマシンかによってダウンロードするインストーラーが異なります。

3.png

  • ja-JP\msodbcsql_17.2.0.1_x64.msi(64ビット)
  • ja-JP\msodbcsql_17.2.0.1_x86.msi(32ビット)

4.png

私のマシンは64bitですのでx64を選択し、「次へ」をクリックします。

5.png

このページまで遷移すると自動的にインストーラーが始まります。

1.1 インストーラーの起動

ダウンロードした「msodbcsql_17.2.0.1_x64.msi」をダブルクリックすると、インストーラーの起動が起動します。

6.png

※現時点でのODBCドライバーのバージョンは17.2.0.1です。ダウンロードするバージョンによって読み替えてください。

Windowsの設定によっては「Microsoft Storeの確認済みアプリではありません」という警告が出ますが「了解してインストール」をクリックして先に進めます。

7.png

1.2 ODBC Driver 17 SQL Serverセットアップウィザード

ODBC Driver 17 SQL Serverセットアップウィザードが立ち上がりますので、「次に」をクリックします。

8.png

1.2.1 使用許諾契約書の確認

使用許諾契約書の確認画面が表示されます。

9.png

内容を確認しましたら、「同意する」を選択し、「次へ」をクリックします。

10.png

1.2.2 インストールするプログラムの機能

インストールするプログラムの機能を選択する画面が表示されますので、ここはデフォルトのまま次へで問題ありません。

11.png

1.2.3 インストールの準備完了

インストールの準備完了画面が表示されますので、「インストール」をクリックしてインストールを開始させましょう。

12.png

インストールが開始されますので、暫く待機します。

13.png

インストールが完了しましたら、完了画面が表示されますので、「完了」をクリックします。

これでODBC Driver for SQL Serverのインストールは完了です。

2. pypyodbcライブラリインストール

line1.gif



SteemSQLにPythonソースからアクセスするためにpythonで書かれたODBCのインターフェイスであるpypyodbcライブラリをインストールします。

Pythonではpipというパッケージ管理ツールが用意されています。pipを用いてライブラリなどを簡単にインストールすることができますが、インストールに管理者権限が必要となるケースがありますので、以下 Windows Power Shellを用いてのインストール作業を行います。

2.1 Windows Power Shellの起動

「スタート」メニューを右クリックし、Windows Power Shell(管理者)というプログラムメニューをクリックします。

14.png

「このプログラムに変更を加えることを許可しますか?」というメッセージが出てきたら「はい」をクリック。Windows Power Shellが起動します。

15.png

2.2 pipでpypyodbcをインストール

Pythonをインストールしたディレクトリ配下のToolsのscriptsフォルダに移動します。

例えばPythonをC:\Develop\tools配下にインストールした場合、cdコマンドで以下のディレクトリに移動します。

cd C:\Develop\tools\Python\Python3.7.1\Tools\scripts

16.png

pypyodbcを次のコマンドでpypyodbcをInstallします。


pip install pypyodbc

「Successfully installed pypyodbc-1.3.4」というようにSuccessfullyというメッセージが出力されていましたらインストールが完了です。

17.png

これでPythonでSteemSQLを使う準備はできました。いよいよPythonプロジェクトを作成しSteemSQLを実行してみたいと思います。

3. SteemSQLプロジェクトの作成

line1.gif

IntelliJでPythonプロジェクトを作成します

18.png

Pythonプロジェクトの作成方法については以下の記事を参考にしてください。

ここではプロジェクト名を「SteemSQLTest」としました。「SteemSQLTest」プロジェクトを作成するとIntelliJの起動直後に以下の画面が表示されます。

19.png

3.1 Pythonソースファイルの作成

左側のプロジェクト名SteemSQLTestの場所で右クリックし、「新規」→「Pythonファイル」を選択します。

20.png

ソースファイル名の入力ダイアログが表示されるので「PythonによるSteemSQLの利用方法」と同じくソースファイル名をconnect.pyとして「OK」をクリックします。

21.png

connect.pyのソースに「PythonによるSteemSQLの利用方法」と同じく、以下をソースコードに入力します。

import pypyodbc
import pprint

connection = pypyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'
                              'Server=sql.steemsql.com;'
                              'Database=DBSteem;'
                              'uid=steemit;pwd=steemit')
cursor = connection.cursor()
SQLCommand = ("SELECT author, permlink FROM TxVotes WHERE voter = 'testuser';")

# do whatever you want with the retrieved data
result = cursor.execute(SQLCommand)
result = result.fetchmany(100)
pprint.pprint(result)

connection.close()

PythonによるSteemSQLの利用方法の手順により、SteemSQLから送られたトランザクションに、

  • ➀サーバー名
  • ②データベース名
  • ③ユーザーID
  • ④パスワード

が記載られているのでソースコードの以下の箇所の文字列を➀~④と差し替えます。ここではvoteしたユーザを検索するために文字列⑤にvoteした対象ユーザー名を記載します。

22.png

ここでimport pypyodbcに赤線の警告が出ていますが、これはIntelliJがpypyodbcライブラリを認識していないために出る警告です。これを解消するには、pypyodbcの上にフォーカスをあて、「Alt」+「Enter」キーを押下します。

23.png

押下すると「Install package pypyodbc」というダイアログが表示されるのでクリックすると、エラーが解消されます。

24.png

動かない方は今一度ユーザー名を見直しましょう。私のユーザー名はSteemitのアカウントの@tamito0201ですが、@steemsqlから返却されたユーザー名は「Steemit-tamito0201」だったため、暫く繋がらなくてハマりました。

3.2 Pythonソースファイルの実行

前節で作成したconnect.pyを実行します。

IntelliJの「実行」→「起動構成の実行」を実行します。IntelliJの実行の方法については【Python】統合開発環境(IDE) IntelliJ IDEAにPythonをインストール / Install Python on IntelliJ IDEAに記載しているので、以下を参照して下さい。

プログラミングに問題がなければ以下のような実行結果が出力されます。

25.png

IntelliJなどのIDEからPythonやJSからSteemSQLのようなAPIの呼び出し方が分かると、ちょっとしたクライアントアプリケーションは皆様も作れるようになるはずです。是非、トライしてみてください。

line2.gif

written by tamito0201

Block chain & web engineer.

A free engineer engaged in the development of business application in the fields of web applications and finance, securities, communication, etc. After that, I experienced building virtual currency platform, I fascinated the development of DAO and DApps using block chain technology, and keep on hacking every day.

Upvote, Follow, Resteem of everyone will encourage renewal, so thank you for your support.

Sort:  

理解はできないのですが、興味深く見守っていますww
さすがですね〜^^

いえいえまだ環境構築なので😅ちょっとsteemit apiも眺めてます!

Posted using Partiko iOS

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63402.76
ETH 2554.52
USDT 1.00
SBD 2.66