CentOS6.4でIPythonを使ってみる。
以前、IPythonを使ってみる。で紹介したのは、Windows環境でのIPythonでしたが、今回はCentOS6.4にIPythonとIPython 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の動作確認
IPython notebookのinstallと起動
次に、IPython notebookを使ってみましょう。
Windows環境とは違い、すぐに使えませんし、yumでもinstallできません。
まずは、installしてみましょう。
IPython notebookのinstall
まずは、必要なrpmをepel download siteからdownloadします。
downloadするrpmは、
-
openpgm-5.1.118-3.el6.i686.rpm
-
openpgm-devel-5.1.118-3.el6.i686.rpm
-
zeromq3-3.2.3-1.el6.i686.rpm
-
zeromq3-devel-3.2.3-1.el6.i686.rpm
-
python-zmq-2.2.0.1-1.el6.i686.rpm
-
python-zmq-tests-2.2.0.1-1.el6.i686.rpm
-
python-tornado-2.2.1-1.el6.noarch.rpm
-
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します。
で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にてお知らせします。
ただし、利用することでなんらかの問題が起きても関知できませんので、あくまでも自己責任で使用をお願いします。 また、テスト環境ですので、利用方法やアクセス方法が変更となる可能性があります。
上記点を考慮して使用してください。
最近のコメント