【SteamSQL】IntelliJを使ってPythonからSteemSQLを実行するのにはどうすればよいか / How to use SteemSQL with Python using IntelliJ
スティーミアンの皆様、本日もSteemitを通じてのプログラミングハックを楽しんでいますでしょうか。本コーナーではサーバサイド&ブロックチェーンエンジニアであるtamito0201(たみと)がプログラミングを行う上での有益な情報を皆様に公開していきたいと考えています。
先日、@shogoさんが「PythonによるSteemSQLの利用方法」という記事を投稿して下さいました。この記事ではPythonをコーディングしSteemSQLへの情報取得の具体的なソースコードが紹介されておりました。
スティーミアンの皆様、IntelliJ IDEA(インテリジェイ アイディア)の使い方を学習しましたのでそのIDEを使って@shogoさんのプログラミングを動かしてみましょう。
IntelliJ IDEAのインストール方法については以下を参照してください。
- 【開発】ローカル環境への統合開発環境(IDE): IntelliJ IDEAのインストール手順 / Install and set up IntelliJ IDEA
- 【開発】統合開発環境(IDE) IntelliJ IDEAのカスタマイズ / Customizing IntelliJ IDEA
Pythonのインストール方法については以下を参照してください。
@shogoさんがご紹介したPythonソースを使ってSteemSQLを動かすために事前準備としてODBCドライバーをインストールします。SteemSQLにPythonソースから接続するには、お使いのコンピュータにODBCドライバをインストールする必要があるためです。
1. ODBCドライバーのインストール
ODBC Driver for SQL Server のダウンロードページからインストーラーをダウンロードします。
WindowsやLinux、macOS毎にインストーラーが異なりますのでご自身の環境に合ったインストーラーをタウンロードします。
言語の選択画面に遷移しますので、「Japanese」を選択し、ダウンロードボタンをクリックします。
まだダウンロードは始まりません。ダウンロードするご自身の環境のOSが32bitマシンか64ビットマシンかによってダウンロードするインストーラーが異なります。
- ja-JP\msodbcsql_17.2.0.1_x64.msi(64ビット)
- ja-JP\msodbcsql_17.2.0.1_x86.msi(32ビット)
私のマシンは64bitですのでx64を選択し、「次へ」をクリックします。
このページまで遷移すると自動的にインストーラーが始まります。
1.1 インストーラーの起動
ダウンロードした「msodbcsql_17.2.0.1_x64.msi」をダブルクリックすると、インストーラーの起動が起動します。
※現時点でのODBCドライバーのバージョンは17.2.0.1です。ダウンロードするバージョンによって読み替えてください。
Windowsの設定によっては「Microsoft Storeの確認済みアプリではありません」という警告が出ますが「了解してインストール」をクリックして先に進めます。
1.2 ODBC Driver 17 SQL Serverセットアップウィザード
ODBC Driver 17 SQL Serverセットアップウィザードが立ち上がりますので、「次に」をクリックします。
1.2.1 使用許諾契約書の確認
使用許諾契約書の確認画面が表示されます。
内容を確認しましたら、「同意する」を選択し、「次へ」をクリックします。
1.2.2 インストールするプログラムの機能
インストールするプログラムの機能を選択する画面が表示されますので、ここはデフォルトのまま次へで問題ありません。
1.2.3 インストールの準備完了
インストールの準備完了画面が表示されますので、「インストール」をクリックしてインストールを開始させましょう。
インストールが開始されますので、暫く待機します。
インストールが完了しましたら、完了画面が表示されますので、「完了」をクリックします。
これでODBC Driver for SQL Serverのインストールは完了です。
2. pypyodbcライブラリインストール
SteemSQLにPythonソースからアクセスするためにpythonで書かれたODBCのインターフェイスであるpypyodbcライブラリをインストールします。
Pythonではpipというパッケージ管理ツールが用意されています。pipを用いてライブラリなどを簡単にインストールすることができますが、インストールに管理者権限が必要となるケースがありますので、以下 Windows Power Shellを用いてのインストール作業を行います。
2.1 Windows Power Shellの起動
「スタート」メニューを右クリックし、Windows Power Shell(管理者)というプログラムメニューをクリックします。
「このプログラムに変更を加えることを許可しますか?」というメッセージが出てきたら「はい」をクリック。Windows Power Shellが起動します。
2.2 pipでpypyodbcをインストール
Pythonをインストールしたディレクトリ配下のToolsのscriptsフォルダに移動します。
例えばPythonをC:\Develop\tools
配下にインストールした場合、cdコマンドで以下のディレクトリに移動します。
cd C:\Develop\tools\Python\Python3.7.1\Tools\scripts
pypyodbcを次のコマンドでpypyodbcをInstallします。
pip install pypyodbc
「Successfully installed pypyodbc-1.3.4」というようにSuccessfullyというメッセージが出力されていましたらインストールが完了です。
これでPythonでSteemSQLを使う準備はできました。いよいよPythonプロジェクトを作成しSteemSQLを実行してみたいと思います。
3. SteemSQLプロジェクトの作成
IntelliJでPythonプロジェクトを作成します
Pythonプロジェクトの作成方法については以下の記事を参考にしてください。
ここではプロジェクト名を「SteemSQLTest」としました。「SteemSQLTest」プロジェクトを作成するとIntelliJの起動直後に以下の画面が表示されます。
3.1 Pythonソースファイルの作成
左側のプロジェクト名SteemSQLTestの場所で右クリックし、「新規」→「Pythonファイル」を選択します。
ソースファイル名の入力ダイアログが表示されるので「PythonによるSteemSQLの利用方法」と同じくソースファイル名をconnect.py
として「OK」をクリックします。
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した対象ユーザー名を記載します。
ここでimport pypyodbc
に赤線の警告が出ていますが、これはIntelliJがpypyodbcライブラリを認識していないために出る警告です。これを解消するには、pypyodbcの上にフォーカスをあて、「Alt」+「Enter」キーを押下します。
押下すると「Install package pypyodbc」というダイアログが表示されるのでクリックすると、エラーが解消されます。
動かない方は今一度ユーザー名を見直しましょう。私のユーザー名はSteemitのアカウントの@tamito0201ですが、@steemsqlから返却されたユーザー名は「Steemit-tamito0201」だったため、暫く繋がらなくてハマりました。
3.2 Pythonソースファイルの実行
前節で作成したconnect.py
を実行します。
IntelliJの「実行」→「起動構成の実行」を実行します。IntelliJの実行の方法については【Python】統合開発環境(IDE) IntelliJ IDEAにPythonをインストール / Install Python on IntelliJ IDEAに記載しているので、以下を参照して下さい。
プログラミングに問題がなければ以下のような実行結果が出力されます。
IntelliJなどのIDEからPythonやJSからSteemSQLのようなAPIの呼び出し方が分かると、ちょっとしたクライアントアプリケーションは皆様も作れるようになるはずです。是非、トライしてみてください。
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.
理解はできないのですが、興味深く見守っていますww
さすがですね〜^^
いえいえまだ環境構築なので😅ちょっとsteemit apiも眺めてます!
Posted using Partiko iOS