とあるきっかけでZeppelinというウェブベースのノートブックサービスの存在を知りました。恥ずかしながら、こういった「ノートブックの中でコードが実行できる」というものを全く知らなかったので、Pythonの学習記録を残すにはよいのではないかと興味を持ちました。
少し調べてみると、ZeppelinでもPython連携は可能みたいですが、よりPythonに近いものとして、Jupyterというものがある、ということで試しに導入してみました。

環境

Windows10(64bit)
Anaconda3 4.3.1(これを入れると、jupyter_core 4.3.0がインストールされる)

Anaconda導入

公式によると、Jupyterは単体でのインストールではなく、Anacondaの一部としてインストールするのが推奨のようです。
またまた不勉強ですが、Anacondaも知らなかったので調べたところ、Pythonのディストリビューションの1つで、主に数値計算、データサイエンス系のライブラリが充実しているとのこと。またCondaというパッケージ管理のソフトを含み、これを使って2.xと3.xの使い分けや仮想環境構築(virtualenv/pyenv)もカバーできるようです。
Anacondaのダウンロードはこちらから。
Windows10(64bit)環境なので、対応するインストーラを落として実行。
ちなみにもともと入っていたPython2.7,3.5はいったんアンインストールしようかと思いましたが、StackOverflowに残してよいとあったので、とりあえず残しました。

基本的にデフォルトの設定を受け入れましたが、ユーザはAll Usersにしました。
また、必要容量1.8GBには少し驚きました。

Juputer起動

インストール完了後、コマンドプロンプトにて
jupyter notebookと打てばサーバがポート8888で起動し、勝手にブラウザで立ち上がります。
ポートを変更するには、jupyter notebook –port 9999, ブラウザの立ち上げをしないのは、jupyter notebook –no-browserです。

20170327_013.jpg

実行したフォルダのファイル一覧が表示されます。新しくnotebookを作るには、New→Python3を選択(この時点ではこれしか関連付けされていないので)。
出てきたセルに適当なコードを下記、Shift + Enterすると実行されます。インデントや色分けもやってくれます。

20170327_014.jpg

別バージョンのインストール

【参考】
https://jupyter.readthedocs.io/en/latest/install-kernel.html

各インタープリタはkernelと呼ばれる。
2.7をインストールするには、conda create -n py27 python=2.7.12 ipykernel
これで、C:\ProgramData\Anaconda3\envs\py27にインストールされる。
これは、JupyterというよりAnacondaの世界の話(JupyterはAnacondaの環境を使っているだけ)なので、Jupyter関係なく、Python2.7環境を呼び出せる。
これだけではJupyterとは関連づかないので、以下のように関連付ける。

>activate py27
(py27) >python -m ipykernel install --user

これでもう一度起動すると、python2も選べる。ここで表示される名前py27となるのかと思ったらPython 2になる。環境が作られるフォルダの名前が拾われるのかな?
%APPDATA%\jupyter\kernels\python2

20170327_015.jpg

呼び出したpy27環境の停止はdeactivate py27

他のコマンドの使用

python以外のことをさせたいなら、セルに%%cmdと入れれば、windowsのコマンドプロンプトのコマンドを使えます。うまくやれば、色々統合できそう。

20170327_016.jpg

(2019/02/10追記)デフォルトディレクトリの変更

色々な方が書いていますが。少し追加が必要だったのでメモ。
anacondaをインストールすると同時にインストールされるAnaconda Terminalというアプリケーションを実行し、以下のコマンドで設定ファイルを生成、それを編集する。

(base) C:\Users\ikedak2>jupyter notebook --generate-config
Overwrite C:\Users\ikedak2\.jupyter\jupyter_notebook_config.py with default config? [y/N]y
Writing default config to: C:\Users\ikedak2\.jupyter\jupyter_notebook_config.py

c.NotebookApp.notebook_dirというパラメータを書き換える。Windowsの場合は円マークを2回続けてエスケープする必要がある点に注意。

## The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = 'C:\\Users\\ikedak2\\Jupyter_Memo'

これだけでは変更されないので、Windowsのアプリ一覧から、Jupyter Notebookを右クリックし、ファイルの場所を開くとする。そこにJupyter Notebookのショートカットがあるので、そのプロパティを開く。自分の場合は以下。
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)

    • 「リンク先」の中で、最後に%USERPROFILE%という記述がある場合はそれを削除する。

 

    • 作業フォルダを指定したディレクトリに合わせる

 

    上記2点を修正すると、無事想定通りに起動しました。
image

(2020/09/20追記)補完の追加

相当昔の記事なので、全体的にリバイズが必要な気はしますが、いったん追記します。
Jupyter NotebookはデフォルトではIDEのような入力補完が行われません。以下の手順で有効化できます。
まずAnacondaインストール時に一緒にインストールされる、Anaconda Promptを起動し、そこで以下を実行します。

pip install jupyter-contrib-nbextensions
pip install jupyter-nbextensions-configurator
jupyter contrib nbextension install
jupyter nbextensions_configurator enable

Jupyter Notebookを起動しなおすと、Nbextensionsというタブが追加されているので、そこでHinterlandをチェックします。

image

これでコード補完がされるようになります。

まとめ

これでJupyterを起動し、ノートブックごとにPython2.7,3.6を使い分けられるようになりました。

Jupyter, anaconda, ipython, condaの関係性が難しい…。
あと公式のドキュメントがものすごくたどりづらい気がする。
– Anaconda: pythonのディストリビューション(jupyterを含む)
– conda: anacondaのパッケージ管理ソフト
– ipython: pythonのシェルを拡張したもの(つまりシェル)。補完などの機能がデフォルトのシェルよりも優秀らしい。ipython notebookという、ipythonをブラウザから実行(プラスメモ)の機能をもっていたが、それが分離してjupyterとなった。
– jupyter: webベースのノートブック。バックエンドとしてipythonを使用。

すなわち、Jupyterからpythonを使う時のシェル(インターフェース)がipythonで、その全体がanacondaというディストリビューションに含まれている、という理解。
つまり、JupyterはPythonに近い、というよりほぼpythonそのものなipythonの派生だったわけです。きっかけになったzeppelinもそのうち挑戦しようと思います。

广告
将在 10 秒后关闭
bannerAds