10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

atom使いのためのdockerとHydrogenによるお手軽python環境構築

Last updated at Posted at 2019-04-15

atomを使いたい

dockerを使うとお手軽にjupyterを使えるpython環境が手に入ります。ただjupyterをそのまま使いたくないという謎のこだわりがある。
pythonを書くときの環境はjupyter notebookが便利。最近だとjupyterLabなんかも拡張機能とかもあって楽しいらしい。(参考:https://qiita.com/canonrock16/items/d166c93087a4aafd2db4)

しかし、私はatomを使いたい。特別理由はないがatomを使いたい。

pythonに関してはatomにHydrogenというパッケージを導入すればjupyterライクに出力を得られる。ただ、SSHでリモートマシンに接続したり、dockerコンテナ上のカーネルに接続する場合多少の設定が必要になる。
今回は、いろいろあって環境がぐちゃぐちゃになったので、docker上にpython環境を用意しatom上でHydrogenを使う環境を整えたのでその流れをメモに残します。

dockerコンテナの起動

docker imageを自分で用意する時間がなかったため、jupyter環境が最初から構築してあるimageを使わせてもらった。docker hubにいろいろあるが、自分はjupyter/scipy-notebookを使わせてもらった。
詳細は省かせていただきます。
***1.***docker imageをpull

docker pull jupyter/scipy-notebook

***2.***docker imageをrun

docker run -p 8888:8888 -v ~/hoge:/home/jovyan/work jupyter/scipy-notebook start-notebook.sh --NotebookApp.token='yourtoken'

オプションとして、

  • -p: コンテナのポートをホスト側に公開してポートフォワーディング。例ではローカルの8888とコンテナの8888をポートフォワーディングしている。
  • -v: ボリュームをマウント。フォルダの同期のため。例ではローカルのhogeとコンテナ内のhome/jovyan/workとをマウントしています。
  • start-notobook.sh: jupyterのコマンドを使用するために必要なオプション.このあとじゃないと下記のNotebookAppというオプションが効かない。
  • NotebookApp.token="yourtoken": jupyter側のコマンドで、tokenを指定

tokenは指定しないと毎回変わるので指定することをオススメ。
ここで、

Executing the command: jupyter notebook --NotebookApp.token=yourtoken
[I 14:19:25.923 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
[I 14:19:27.362 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.7/site-packages/jupyterlab
[I 14:19:27.362 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 14:19:27.365 NotebookApp] Serving notebooks from local directory: /home/jovyan
[I 14:19:27.366 NotebookApp] The Jupyter Notebook is running at:
[I 14:19:27.367 NotebookApp] http://(***):8888/?token=…
[I 14:19:27.367 NotebookApp]
Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

とでてきてdockerコンテナ上にjupyter kernelが起動できた。

ここまでできたら、Hydrogenへの設定へ。

Hydrogenの準備

調べればたくさん丁寧に説明してくれてる記事があるので、Hydrogenのインストール等は省略する。(こことか)

atomのpacageからHydrogenの設定画面へ行き、Kernel Gatewayというところに、こんな感じで記入。

スクリーンショット 2019-04-14 23.50.01.png
nameは自分の好きなものを、baseUrlはdockerを起動したときにでてきたurlをコピペ、tokenは自分で設定したtokenを記入。
詳細はここ参照。

Hydrogenからリモートカーネルへ接続

  1. atomの画面からコマンドパレットを開き,Hydrogen:Connect To Remote Kernelを選択。
    スクリーンショット 2019-04-14 23.57.05.png
    2.remote kernelが見つかれば次のように出てくるので、使いたいカーネルを選択。

スクリーンショット 2019-04-14 23.59.22.png
3.セッションを選択。
スクリーンショット 2019-04-14 23.59.43.png

ここまできたら、あとは通常のHydrogenと同じように使えるはず。

まとめ

Hydrogenを使えば、atomのエディタ機能を使いながらjupyterのインタラクティブな機能をふんだんに使える。jupyter用のショートカットを覚える必要もない。docker使えば環境設定の必要もほぼいらない。python使う人はatomとHydrogen使いましょ。
(jupyter labとかは進化が目まぐるしいので、ちょっとさわってもいいかな・・・)

ssh接続でリモートマシン上のカーネルを使いたいときも同じようにできると思います。

参考

Jupyterをブラウザで使うのをやめてAtomのHydrogenに移行した話
JupyterのDockerイメージまとめ
Hydrogen
jupyter docker stacks

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?