SE(たぶん)の雑感記

一応SEやっている筆者の思ったことを書き連ねます。会計学もやってたので、両方を生かした記事を書きたいと考えています。 でもテーマが定まってない感がすごい。

Jupyter Notebookをスクリプトから起動する(Windows)

Jupyter Notebook、便利ですよね。

ただ、起動するときに

cd "ルートのパス"
jupyter notebook

と入力する必要があり、ちょっと面倒です*1

また、Pythonの仮想環境にJupyterをインストールした場合、

cd "jupyterルート"
. "仮想環境起動"
jupyter notebook

のようになり、さらにコマンドが長くなります。

これを、WindowsスクリプトbatPowerShell)を使って、起動できるようにする、というのが当記事の目標です。

環境

動作確認した環境は、以下の通りです。

名称 バージョン
OS WIndows 10 Professional 64bit
Python 3.6.5
jupyter 1.0.0
PowerShell 5.1.17134.48

PowerShellは、いわゆるデスクトップバージョンです。

また、仮想環境はvenvを使用して作成しています。
Anaconda等は使用せず、pipにてjupyterをインストールした環境です。

PowerShell利用

名称
仮想環境名 myvenv
仮想環境ルート C:\seminar\myvenv
Jupyterルート C:\Seminar

上記の値なら、

Set-Location "C:\seminar"
. "C:\seminar\myvenv\Scripts\Activate.ps1"
jupyter notebook

のようなスクリプトで、Jupyter Notebookで起動できます*2

スクリプト保存場所は、ローカルならどこでも良いです。

権限不足

上記のスクリプトで起動はできますが、ログインユーザーがPowerShellの実行権限*3を持たない場合があります。
権限を振ることはできるのですが、面倒です。

ここに、権限付与について書いてあります。必要なら設定してください。

batと組み合わせる

バッチファイルからPowerShellを起動すれば、権限不足でもPowerShellスクリプトを起動できます。

powershell -NoProfile -ExecutionPolicy RemoteSigned .\execute_jupyter.ps1

同一階層にこのバッチファイルと、PowerShellスクリプトを置いて、バッチファイルを起動すると、

f:id:hiroronn:20180517082807p:plain

のように、batファイルからJupyter Notebookを起動できるようになります。

おわりに

今回も小ネタでした。

私見ですが、Jupyter Notebookを使うことになれば、pip等も多用することになります。

そのため、コマンドの扱いには慣れておいたほうが良いです。

jupyterを仮想環境に入れている理由ですが、依存ライブラリが多く、あまり本体をごちゃごちゃにしたくない、という思いからです。
仮想環境を自分で作れる時点で、あまり今回の知識は使わない気はしますが、楽できる一手段として考えていただければよいと思います。

*1:慣れろ、と言われるとそれまでだが

*2:上記内容を保存し、「~.ps1」という拡張子で保存し、ファイル右クリックで「PowerShellで実行」を選択する

*3:PowerShellのGet-ExecutionPolicyのこと