atom（仮想環境）のhydrogenを設定する手順

#はじめに
atomで開発をしていく中で、途中までのコードを実行したいときありませんか？調べるとAtomをjupyterのように使用できるhydrogenというpackageがあったのでその設定方法を書いていこうと思います。私のような初心者ではエラーがなかなか解消できず、解決できた時は正直泣きました。笑
はじめての投稿かつ独学でやっているもので間違い等あれば指摘していただけると幸いです。

#対象とする人
・atomのhydrogenを仮想環境下で設定したい方

・atomでhydrogenを設定する際に以下のようなエラー文が出た方（atomでhydrogenを実行しようとしたきとにでるエラーです）
`Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2032.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2032.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File
・・・・・・・中略・・・・・・・・ "C:\Users\username\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\jupyter_core\paths.py", line 361, in win32_restrict_file_to_user import win32api ImportError: DLL load failed: �w�肳�ꂽ���W���[����������܂���B
`
#自分が陥ったエラーについて
自分が一通り設定を完了してからatomでhydrogenを実行したときに上記のエラーコードで出できて、ほんとうに苦労しました。
いろいろ試した結果解決策は以下のとおりでした。（詳細は以下の手順⑧からみてください）
・Atom/環境設定/hydrogen/settingsから設定ができる「startup code」「Kernel Gateways」へjupyter Kernel のjsonを張り付ける手順の際に仮想環境のjsonではなくbase環境のjsonを張り付けていたためこのようなエラーがでていたと思われます。（base環境はpython3.7です。）



![Atom　hydrogen設定画面1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663519/599b08d7-7f5a-691a-5f34-c78cc333c771.png)

![Atom　hydrogen設定画面2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663519/3254bc6e-773f-a406-c926-a0f2a3dd26b7.png)



#環境
・Windows10
・Atom 1.48.0
・hydrogen 2.14.3
・仮想環境　conda python3.6.10
※anaconda,atom,hydrogenはインストール済みであることとします。
仮想環境を構築した理由としては、python3.7だとhydrogenが上手く動かない？といった記事がいくつかあったため、python3.6の仮想環境を構築することにしました。（実際にpython3.7での設定は試みていないため真偽は不明）



#手順
##①仮想環境を構築
・anaconda promptを起動

・以下のコードを実行

```:Anaconda_prompt
>conda create -n py36_fxpractice python=3.6
```

※`py36_fxpractice`の部分は仮想環境名になる箇所であるため任意の名称で構いません。
※今回はpython3.6の仮想環境を構築したいので仮想環境を構築する際pythonのversionを指定しています。

・実行後いろんな文章が表示された後、以下の文が表示されます。

```
Proceed ([y]/n)? 
```

`y`を入力し`Enter`


##②：構築した環境の確認
以下のコードを実行

```:Anaconda_prompt
>conda info -e
```

```:出力結果
# conda environments:
#
base                  *  C:\Users\UsersName\Anaconda3
py36_fxpractice          C:\Users\UsersName\Anaconda3\envs\py36_fxpractice

```

※このコードで先ほど作成した仮想環境ができているかの確認および、どこの環境にいるのかの確認をします。
※出力結果から`base`環境と先ほど作成した`py36_fxpractice`環境があることがわかります。`base`環境に`*`印があるため現在は`base`環境にいることもわかります。

##③：仮想環境への切替え
以下のコードを実行

```:Anaconda_prompt
>activate py36_fxpractice
```

```:実行後
(py36_fxpractice) C:\Users\Kawahara>
```

※実行後環境が仮想環境に切り替わります。`（base）⇒（py36_fxpractice）`に替わります。

##④：jupyterのインストール
以下のコードを実行

```:Anaconda_prompt
>conda install jupyter
```

※仮想環境でjupyterをインストールします。jupyterをインストールする際に、同時に必要なものが④のコード実行後「これも一緒にインストールするよ？」って感じで表示されます。

・実行後いろんな文章が表示された後、以下の文が表示されます。

```
Proceed ([y]/n)? 
```

`y`を入力し`Enter`


##⑤：jupyterのkernelを作成
以下のコードを実行

```:Anaconda_prompt
ipython kernel install --user --name py36_fxpractice --display-name py36_fxpractice
```

※`$ipython kernel install --user --name=環境名 --display-name=環境名`であるため、`環境名`の箇所は任意のもので構いません。

##⑥：jupyter kernelの確認
以下のコードを実行

```:Anaconda_prompt
jupyter kernelspec list
```

```:出力結果
Available kernels:
  py36_fxpractice    C:\Users\UserName\AppData\Roaming\jupyter\kernels\py36_fxpractice
  python3            C:\Users\UserName\AppData\Roaming\jupyter\kernels\python3
```

※作成した仮想環境のパスのようなものが表示されていれば成功です。

##⑦必要なライブラリのインストール

```:Anaconda_prompt〈例〉
conda install numpy　
```

`conda install 【ライブラリ名】`でインストールできます。①④同様に`Proceed ([y]/n)?`と聞かれるので`y`を入力し`Enter`をします。上記は例として`numpy`をインストールしています。

##⑧：jupyter notebookの起動
以下のコードを実行

```:Anaconda_prompt
jupyter notebook　
```

コード実行後ブラウザでjupyteが起動します。（以下のような画面が表示されます。）

![jupyter display 設定画面1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663519/4da40e44-c411-ea9c-6b07-b4dd87ac95b7.png)


・上記の画像の`New`をクリックし⑤で作成したカーネルの`display-name`があるはずなのでそれを選択します。実際にコードを実行してみてjupyterが正常に動くのか確認します。
確認後jupyterおよびanaconda promptを閉じます。(画面右上の×で私は閉じています。)

##⑨：jupyter kernelのjsonを取得
再度anaconda promptを開き以下のコードを実行

```:Anaconda_prompt
　jupyter kernelspec list --json
```

※コードを実行後にjsonコードが表示されます。jsonとはたくさんの[]で囲まれて中に、パスなどが表示されています。その中に上記の手順で作成した仮想環境名であったり、display名があれば成功っぽいです。

##⑩：Atomの設定
anaconda promptよりAtomを開く（以下のコードを実行）
※anaconda promptから開かないとhydrogenが起動しないっぽいです。

```:Anaconda_prompt
　atom .
```

Atom起動後、Atom/環境設定/hydrogen/settingsから設定ができる「startup code」「Kernel Gateways」へjupyter Kernel のjsonを張り付ける。

一度atomを終了し再度同じ方法でAtomを開く。
適当なファイルを開いて`shift + Enter`を押すと画面のようにAtom上でjupyterみたいにコードが実行されるはずです。

![Atom　hydrogen実行画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663519/7cef2072-525d-e007-51a1-779fb7bc03ae.png)


#参照URL
以下の方のHPを参考にしましたので載せておきます。
###Jupyter関連
・ [[Qiita] Miniconda・Atom Hydrogenを用いたPython環境構築](https://qiita.com/yteshi/items/4c013f616a1983f633e5)

###仮想環境について
[[Qiita] 【初心者向け】Anacondaで仮想環境を作ってみる](https://qiita.com/ozaki_physics/items/985188feb92570e5b82d)

###path設定
これは記事に書いてはいませんが、上記の手順をしてもダメだった場合、この記事を参考にして仮想環境でPathを通してみてください。
・[[Qiita] AtomでHydrogenを動かす手順メモ](https://qiita.com/Nakashimn/items/856dd45a6c9d42c17b7c)