ipythonの利用

はじめに

有名なツールなのでipythonについていまさら説明しなくとも使い込んでいる方も多いと思いますが
http://ipython.org/
にて配布している、インタラクティブshellとしても使えるpythonです。
最近はデータ分析系の方々に知名度が高いようですね。

インストール

AmazonLinuxの場合、標準のリポジトリにはないのでepelを利用してください。

$ sudo yum --enablerepo=epel install python-ipython

実行

installが正常に終わったらさっそく実行してみます。

UNIXコマンドツール

日常のUNIXコマンドの実行は頭に!を付ければ実行できます。

もちろんパイプも使えます

pythonらしく使う

せっかくpythonの処理系の上にいるので!をつけてコマンドをたたくだけだと、ただ面倒になっただけなのでpythonらしい使い方をします。

ssの実行結果を変数に入れることができます。変数はそのまま入力するとオブジェクトの内容を表示します。

画面からあふれて困るときにはページャとしてpageコマンドが使えます。

結果はpythonの配列なので配列に対しての操作ができます

notebookインタフェース

で起動すると立派なWebインタフェースが起動します。

デフォルトではブラウザも起動しますので、適宜--no-browserをつけて起動すると良いです。

またポートは8888で起動しますので、こちらも困るって場合には

などで指定できます。

tornodoをつかったすごくきれいなインタフェースです。

notebookをリモートサーバとしてセットアップ

デフォルトでは127.0.0.1にbindして起動しているためローカルからのみ利用ができます。外部から利用するにはプロファイルで設定が必要となります。
オフィシャルのドキュメントを参照していただけば容易な内容ですが手順を示します。

パスワードを生成します

ipythonのモジュールの中でパスワード生成のツールが用意されていますので利用しましょう。

出力結果を見ての通りsha1のハッシュを生成するだけなので、同じようにsha1が生成できれば他のツールでも問題ないかと思います。

プロファイルに記載します

リモート用のプロファイルを作成しておきます

これで~/.ipython/profile_nbserverの中にdefaultとは別のリモート用プロファイルが作成されます。
さっそく、リモートサーバ用のコンフィグを編集します。

記載箇所は

  • バインドするIPアドレスを全部
  • パスワードを指定
  • 証明書を指定
  • ブラウザを開かない

となります。
なお、今回は証明書の指定は無しで設定します。

bindアドレスを指定します。

パスワードの設定

先の手順で取得したハッシュを記載します。

ブラウザを開かない用にします。

起動

記載したプロファイルを利用して起動します。

ブラウザから
http://IPアドレス:8888/
のような形でアクセスして、ログイン後に画面がでれば成功です。
※AWSの場合にはセキュリティグループに妥当なアドレスを許可しましょう。

ipython:notebook

notebook起動画面

タブによるコードの補完もききますし、セーブもできます。
ipython

タブ補完対応

書いたコードは実行ボタンで確認することができます。
実行ボタン

実行ボタン

サーバ内のアクセスログをパースして表示してみる

https://code.google.com/p/apachelog/
にて配布しているapachelogモジュールを用いてサーバ内のApacheWebサーバのログをパースしてみます。
このモジュールの便利なところはhttpd.confで記載しているログ記述子をそのままフォーマットとして指定できるところです。そのためaccess_logのフォーマットが異なるサーバへの対応も容易に実施できます。

ほぼipythonでhelpで表示される内容そのままですがコードを編集しながら、すぐに結果が得られる感覚は楽しいと思います。いかがでしょうか。

参考:helpの使い方

実行例

実行例

なお、サーバ内での実行環境そのものなので、リモートサーバの場合には特にセキュリティにはお気をつけください。

リモートサーバのシステムの情報を取りながら集計を行うなど可能性はありそうですね。

リンク

1次配布先です。
ipython.org
少し古い本ですが、利用例について書かれているオライリーの書籍です。
Python for Unix and Linux System Administration

下記は商用版のサービスを展開しているサイトです。
Windowsでの利用はこちらのanacondaが便利だと思います。
continuum.io

投稿者プロフィール

えんじにあん
インフラ系のエンジニアです。
運用系のスクリプトを書いたり、オートメーションな世界に向かって日々精進しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

インフラ系のエンジニアです。 運用系のスクリプトを書いたり、オートメーションな世界に向かって日々精進しています。