【Python】 Jupyter notebook / Lab をリモート接続で利用する
Pythonでの開発においてとても便利なJupyter notebookですが、少し設定をいじるだけでリモート接続が可能となり、より便利な開発環境になります。
設定方法
1. notebook_config.pyの作成
jupyter notebook --generate-config
~/.jupyter/jupyter_notebook_config.pyが生成される。
2. パスワードの設定
ipythonを立ち上げて以下を実行
In [1]: from IPython.lib import passwd In [2]: passwd()
passを入力するとsha鍵(sha1:XXXXXXXXX)が生成されるのでコピーしておく。
3. notebook_config.pyの編集
# 追記 c = get_config() # 該当箇所のコメントを解除して、修正 c.NotebookApp.ip = '0.0.0.0' # アクセス許可IP c.NotebookApp.open_browser = False # jupyter notebook 起動時にブラウザを開かない c.NotebookApp.port = 9999 # アクセスポート(任意) c.NotebookApp.password = u'sha1:XXXXXXXXX' # 先ほど生成されたsha鍵を記述
他のネット情報ではc.NotebookApp.ip = '*'
としている記事が多いですが、エラーで上手くいかなかったので'0.0.0.0'
にすること。特定のIPだけを許可する場合は、そのIPを記載。
4. Jupyter notebook / Lab の起動
nohup jupyter notebook & # or nohup jupyter-lab &
nohup
をつけることでシェルが閉じられてもJupyterは実行され続けます。
5. Jupyter にアクセス
http://<サーバーのIPアドレス>/9999
にアクセスすると、最初に設定したパスワードを入力する画面になります。
パスワードを入力すると、Jupyter notebook / Lab にアクセスできているはずです!
まとめ
これでいつでもどこでもJupyter notebookで開発をすることができ、気分転換にカフェで開発なんてこともできるので、働き方の幅が広がること間違い無し!?
【Python】 関数の実行時間を計測する
Pythonにおいて時間を計測する方法はいくつかありますが、今回はデコレータを利用した方法を紹介します。
デコレータの定義
次のようにデコレータを定義します。
import functools from time import time def stop_watch(func): @functools.wraps(func) def wrapper(*args, **kwargs): start = time() result = func(*args, **kwargs) end = time() print("Elapsed time {:.5f}".format(end - start)) return result return wrapper
小数点以下の表示を制御するにはprint("Elapsed time{:.5f}")
内の数字を変更すると桁数を変更できます。
Capslock を Ctrl に変更に変更する
あのイマイチ使いドコロがわからないどころか邪魔さえしてくる「Capslock」キーを、使い勝手のよい「Ctrl」キーに変更する方法をまとめておきます。
Ubuntuの場合
- Ubuntu 16.04
Ubuntuの場合は、/etc/default/keyboard
にXKBOPTIONS="ctrl:nocaps"
を書き込んで再起動するだけでOKです。
Windowsの場合
- Windows10
Ctrl2capを使うと簡単です。
インストール方法は公式の指示通りにしましょう。
ダウンロードしたものを解凍して、そのフォルダの中でコマンドプロンプトから
ctrl2cap /install
として、再起動すればOK。
ctrl2cap /install
を実行する際は、コマンドプロンプトを管理者権限で起動しておきましょう。
まとめ
これでCapslockにイライラさせられない快適なキーボードの完成です!
【Python】jupyter notebookの機能拡張 ~jupyter notebook extensions~
jupyter notebookとは、ブラウザ上で動作するデータ分析用のツールです。
ソースコードの実行、結果の表示だけでなくMarkdown形式でリッチなコメントを残すことができるため、実験から資料作成までこのツールだけで完結することができます。
今回は、そのjupyter notebookをさらに便利にするjupyter notebook extensionsについて記事にしました。
続きを読む