Daily Archives: 07/15/2013

CentOS6.4でIPythonを使ってみる。

CentOS6.4でIPythonを使ってみる。

以前、IPythonを使ってみる。で紹介したのは、Windows環境でのIPythonでしたが、今回はCentOS6.4IPythonIPython notebookをinstallしてみました。
そして、外部からIPython notebookにアクセスできるようにWeb Serviceとして試験公開してみました。
ただし、passwordが必要ですけど。

IPythonの公式サイトは、こちらを参考にしてください。

既知のバグと注意点

注意点) IPythonをinstallするとSpyder(Python GUI Editor)が使えなくなります。既知のバグだそうです。したがって、他のEditorを使うか、またはIPythonをinstallしないかは、ご自分で判断してください。

The Eric Python IDEを代わりにinstallして利用することはできます。

再度IPythonとは?

Wikipediaより
IPython (あいぱいそん) はPythonを対話的に実行するためのシェルである。オリジナルの Python に比較して、型推定を強化し、対話的実行のための文法を追加してあり、コード・ハイライティングおよびタブによる補完が行える。IPythonは SciPy パッケージの一部として公開されている。」

要するに、IPythonはShellのようなものであり、インタプリタ環境で使うものですね。
でもそれだけではないのです。
IPython notebookこちらの方がすごいっす。
なにがって、Web Browser上でcodingから出力、作図までできちゃうんですよ。
おまけに、codeの補完だってできるのです。
早速使ってみましょう。

CentOS6.4にIPythonのinstall

今回は、CentOS6.4 32bit環境にinstallしてみました。
Pythonのversionは2.6.6です。(yumで標準的なinstallです。)

Python on CentOS6.4でとりあえずPythonの開発環境が設定されていることが前提です。

まずは、rootでIPythonのinstallです。

# pip install ipython

はい、これだけです。
これで、後はterminalからipythonでOKです。

もし、「pipがinstallされてないよ!!」って言われたら、

# yum -y install python-setuptools

をinstallして、再度試してみてください。

IPythonの動作確認

terminalからipythonと入力して、リターンキーを押すと、

な感じでIPythonの動きます。
適当なテストコードを入力すると

で作図も出きてちゃんと動作確認ができました。

IPython notebookのinstallと起動

次に、IPython notebookを使ってみましょう。

Windows環境とは違い、すぐに使えませんし、yumでもinstallできません。
まずは、installしてみましょう。

IPython notebookのinstall

まずは、必要なrpmをepel download siteからdownloadします。
downloadするrpmは、

  1. openpgm-5.1.118-3.el6.i686.rpm
  2. openpgm-devel-5.1.118-3.el6.i686.rpm
  3. zeromq3-3.2.3-1.el6.i686.rpm
  4. zeromq3-devel-3.2.3-1.el6.i686.rpm
  5. python-zmq-2.2.0.1-1.el6.i686.rpm
  6. python-zmq-tests-2.2.0.1-1.el6.i686.rpm
  7. python-tornado-2.2.1-1.el6.noarch.rpm
  8. python-tornado-doc-2.2.1-1.el6.noarch.rpm

が必要になります。
順番にdownloadして、1から8の順にrpm -ivh ~~~~~.rpmでinstallしてください。

これで、IPython notebookの使用環境が整いました。

IPython notebookの起動

terminalで

$ ipython notebook --pylab inline

と入力して、リターンキーを押すと、

のようにWeb Browserが開いて、IPython notebookが開きます。

初期画面では、何も登録されていないので、New notebookをclickして、テストcodeを入力後、runさせると

な感じで、Python実行ができます。おまけに作図がbrowser上で確認できるのです。

notebookの起動時のoption

Windows環境と同じですが、IPythonでnotebookを使うには、

ipython notebook

で起動する。

matplotlib を使いたければ、

ipython notebook --pylab

さらに表示をbrowser上でcodeと同じinline表示したければ、

ipython notebook --pylab inline

IPythonは、本当にすごいですよね。
PythonのEditorなんかいらないですよね。ほんとうに。

IPython notebookをWebで公開

IPython notebookをbowserさえあれば、いつでもどこでも使えるようにしまみましょう。 ただしセキュリティについてはあまり考慮してないので、あくまでも試験公開ということでIntra Net環境で試してみるのが良いでしょう。
Serverの設定については、Running a public notebook serverを参考にします。

ここからの作業はuserで行います。rootで作業しない方が良いです。

Security

まずは、passwdの設定を行います。
terminalからipythonを起動して、

In [1]: from IPython.lib import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:kkl~~~~~~~lkl'

でpassed()を実行して自分のpasswordを入力すると、Out[2]に'sha1:kkl~~~~~~~lkl'なhash passwordが作成されます。
まずは、hash passwordをcopyしておきます。後で使います。

nbserverの作成

webで公開するため、nbserverを作成します。
ipython profile create nbserverを実行すると、

$ ipython profile create nbserver
[ProfileCreate] Generating default config file: u'/home/user名/.config/ipython/profile_nbserver/ipython_config.py'
[ProfileCreate] Generating default config file: u'/home/user名/.config/ipython/profile_nbserver/ipython_notebook_config.py'

でuserのhome directoryに.config/ipython/profile_nbserver/ipython_notebook_config.pyが作成されます。
このipython_notebook_config.pyを後で修正します。

SSL key 作成

SSLで接続するために、証明書keyを作成します。

$ cd .config/ipython/profile_nbserver/
$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

ipython_notebook_config.pyと同じdirectoryにmycert.pemを作成します。

証明書keyについては、メールサーバー間通信内容暗号化(OpenSSL+Postfix+Dovecot)を参考にしてください。

ipython_notebook_config.pyの修正

ipython_notebook_config.pyに下記codeのように追加します。

c = get_config()

# Kernel config
c.IPKernelApp.pylab = 'inline'  # if you want plotting support always

# Notebook config
c.NotebookApp.certfile = u'mycert.pem'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:kkl~~~~~~~lkl your hashed password here'
# It's a good idea to put it on a known, fixed port
c.NotebookApp.port = 9999

ここでpasswordは先ほどcopyしたものをpasteします。

これで、準備完了です。

Webで確認

Terminalで以下のcommandを実行する。

$ ipython profile create nbserver

と実行すると、

のように、port=9999でWeb serverが起動します。

次に、Web Browserからhttps://localhost:9999/を表示させると、

が表示され、「サーバー証明書が認証されてないよ!!」と

でwarningが出ます。
とりあえずは、local環境なので、危険性を理解した上でをclickして次に進むと、

と表示されるので、例外を追加をclickします。

ここで、IPython login 画面が表示されるので、

でpasswordを入力して実行します。
passwordはSecurityで作成したものを入力します。

入力後は、

のように、IPython notebookが開きます。

初期画面では、何も登録されていないので、New notebookをclickして、テストcodeを入力後、runさせると

な感じで、Python実行ができます。おまけに作図がbrowser上で確認できるのです。

細かなところはチェックする必要がありますが、とりあえずは、localhostからの動作が確認できました。
後は、外部に公開するには、domainの設定等を行えばOKです。

今回はServerのsecurityについては、考慮していませんので、外部公開する場合は、securityについて十分に検討した上で行ってください。

あくまでもテスト環境ですが、以下のURLで外部公開を行っています。
IPython nbserver WebSite
パスワードはcontact me から連絡いただければ、利用形態にもよりますが、こちらからemailにてお知らせします。
ただし、利用することでなんらかの問題が起きても関知できませんので、あくまでも自己責任で使用をお願いします。 また、テスト環境ですので、利用方法やアクセス方法が変更となる可能性があります。
上記点を考慮して使用してください。

参考HP

1 / 11

Social Widgets powered by AB-WebLog.com.