MacでGISデータ分析を始めるためにサクッとAnacondaとjupyter labをインストールしてみる

## **Anaconda食わず嫌いからの脱却**

Pythonでコードを書くときにはPipenvを利用して仮想環境を構築することがほとんどなんですが、ここ最近GISデータを変換したり解析したりすることが多くなってきていて「あんまり詳しくないけどJupyterとか使ったら楽っぽいよなー」とか思ったのがきっかけでAnacondaやjupyterを利用し始めたのですが、これがとても快適だったので皆さんにもおすすめしていこうというやつです。

Anacondaはhomebrewとめちゃ相性が悪いとか他の仮想環境と競合してきついとかアンインストールできねぇとか色々聞きますが、アプリケーション開発時にはDockerを利用して環境構築することでそれらをほぼ無視することができると思うので、勇気を出してレッツトライ。

## Anacondaをインストールする

こんな環境でやっていきます。

```bash
❯ sw_vers
ProductName:    macOS
ProductVersion: 12.4
BuildVersion:   21F79
```

こちらの記事とかとても参考になりました！
[https://ai-inter1.com/python-install/#st-toc-h-3](https://ai-inter1.com/python-install/#st-toc-h-3)

基本的には[https://www.anaconda.com/products/distribution](https://www.anaconda.com/products/distribution) にアクセスすると勝手に自信のOSのインストーラーが選択されるので、一応確認してダウンロードするだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/5fe02dfa-2328-3dfc-09e4-334ba4418d00.png)


「Download」をクリックすると（macであれば）.pkgファイルがダウンロードされるので、起動してインストーラーの指示に従うだけでインストールできると思います。

### ※注意

ちなみにご存知の方も多いとは思いますが、Anacondaは2020年より「大規模な環境での利用」は有料となっておりますのでご注意ください。
（[https://qiita.com/tfukumori/items/f8fc2c53077b234384fc](https://qiita.com/tfukumori/items/f8fc2c53077b234384fc) の記事などが参考になるかと思います。また、公式サイトもご確認ください）

## Anacondaを使ってみる

インストールが終わるとランチャーにAnaconda-Navigatorが現れると思いますが、ターミナルから触れると何かと便利なので、コマンドラインで利用できるように設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/a58002d1-ae10-a0d4-d401-354b625f6e2a.png)

自分が利用しているシェルを調べて…

```bash
❯ echo $SHELL
/bin/zsh
```

初期化しましょう。

```bash
❯ conda init zsh
❯ source ~/.zshrc
```

※この段階ではもしかすると「condaコマンドが見つからないよ」と怒られるかもしれません。
その場合はパスを自分で通す必要があります。
おそらく`/Users/<user_name>/opt/anaconda3/bin/`ディレクトリに`conda`コマンドが存在していると思いますので、これをパスに追加しましょう。

以下のようなコマンドを入力すると、確かにcondaという実行ファイルが存在していますね。
```sh
ll /Users/<user_name>/opt/anaconda3/bin/ | grep conda
...
-rwxrwxr-x  1 <user_name>  staff   528B  5 11 13:24 conda*
...
```

発見したら以下のコマンドでパスを追加し、そのまま初期化、そしてzshrcを実行しましょう
```
export PATH=/Users/<user_name>/opt/anaconda3/bin/:$PATH
/Users/<user_name>/opt/anaconda3/bin/conda init zsh
source ~/.zshrc
```

これでターミナルを再起動すると以下のようなコマンドでバージョンが表示されるはずです。

```bash
❯ conda -V
conda 4.12.0
```

これで準備OK！

### （勝手に初期設定の仮想環境が立ち上がるのを防ぐ）

この段階では、どこでターミナルを開いてもcondaのbase仮想環境が立ち上がってしまうので、それを防ぎましょう。

```bash
conda config --set auto_activate_base false
```

## 仮想環境の作成とjupyter labをインストール

まずは適当に作業用フォルダを作りましょう。

```bash
mkdir jupyter_demo
cd jupyter_demo
```

次に仮想環境を作成してみましょう。セットアップが完了しているcondaコマンドを利用します。

途中で入力を求められるので「y」を押してエンターを押しましょう。

```bash
❯ conda create -n jupyter_demo
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: ~/opt/anaconda3/envs/jupyter_demo

Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate jupyter_demo
#
# To deactivate an active environment, use
#
#     $ conda deactivate
```

次にアクティベートします。

```bash
conda activate jupyter_demo
```

するとこんな感じでターミナルのカーソルの上に(jupyter_demo)と表示されるはずです。

これで準備完了です。

```bash
(jupyter_demo) 
~/jupyter_demo via 🅒 jupyter_demo...
❯
```

仮想環境の名前を忘れてしまった場合は以下のコマンドで仮想環境の一覧を取得できます。

```bash
❯ conda info -e
# conda environments:
#
base                     ~/opt/anaconda3
jupyter_demo          *  ~/opt/anaconda3/envs/jupyter_demo
```

base仮想環境には初めからjupyterがインストールされていますが、jupyter_demo仮想環境がアクティブになっている状態で`conda list`コマンドでインストールされたパッケージを確認すると何もインストールされていません。

```bash
❯ conda list
# packages in environment at ~/opt/anaconda3/envs/jupyter_demo:
#
# Name                    Version                   Build  Channel
```

jupyter labをインストールしましょう。

インストール時に大量のパッケージがインストールされることを確認されますが、全てjupyter labの起動に必要ですので、先ほど同様に「y」を入力してエンターを押しましょう。

```bash
❯ conda install jupyterlab
...
  wheel              conda-forge/noarch::wheel-0.37.1-pyhd8ed1ab_0
  xz                 conda-forge/osx-64::xz-5.2.5-haf1e3a3_1
  zeromq             conda-forge/osx-64::zeromq-4.3.4-he49afe7_1
  zipp               conda-forge/noarch::zipp-3.8.0-pyhd8ed1ab_0
  zlib               conda-forge/osx-64::zlib-1.2.12-h6c3fc93_0

Proceed ([y]/n)? y

Downloading and Extracting Packages
xz-5.2.5             | 228 KB    | ################################################################################ | 100% 
psutil-5.9.1         | 357 KB    | ################################################################################ | 100% 
readline-8.1         | 266 KB    | ################################################################################ | 100% 
tornado-6.1          | 654 KB    | ################################################################################ | 100% 
importlib-metadata-4 | 33 KB     | ################################################################################ | 100% 
cffi-1.15.0          | 226 KB    | ################################################################################ | 100% 
tzdata-2022a         | 121 KB    | ################################################################################ | 100%
...
```

インストールされたかどうか確認します。

```bash
❯ conda list | grep jupyterlab
jupyterlab                3.4.2              pyhd8ed1ab_0    conda-forge
jupyterlab_pygments       0.2.2              pyhd8ed1ab_0    conda-forge
jupyterlab_server         2.14.0             pyhd8ed1ab_0    conda-forge
```

## jupyter labを使ってみる

インストールが終わったので立ち上げてみましょう！`jupyter lab`コマンドを実行するとhttp://localhost:8888 にサーバーが立ち上がります。

コマンドの最後に「.」をつけているのは、jupyterの作業ディレクトリをカレントディレクトリに指定するという意味です。

僕の環境では作業ディレクトリを別な場所に固定する設定を行っているため、ディレクトリの指定が必要になりますが、インストールしたての方であれば最後の「.」は不要かもしれません。

```bash
❯ jupyter lab .
...
		To access the server, open this file in a browser:
        file:///Users/satoru/Library/Jupyter/runtime/jpserver-3069-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/lab?token=29a214db46a619f58360a68c9cec2221c5950b3d1b15d7b4
     or http://127.0.0.1:8888/lab?token=29a214db46a619f58360a68c9cec2221c5950b3d1b15d7b4
```

サーバーが立ち上がると自動的にブラウザが立ち上がってこんな画面が表示されると思います。

されない方はブラウザを開いてhttp://localhost:8888 にアクセスしましょう！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/baca8b60-5907-43a4-dac8-64763660cc94.png)

試しにファイルを作ってPythonのコードを動かしてみましょう！

ファイル作成は右クリック（macでいうところのダブルタップ）→「New Notebook」ボタンから行えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/b69563e9-14d2-2bb1-a28a-ab62c3f1d577.png)

クリックすると「カーネルは？」と聞かれるのでそのままSelectで決定しましょう！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/150679c7-ae10-938c-3d6e-0845441cdece.png)

すると画面左のサイドバーに`Untitled.ipynb`が作成されるので、適当に名前を変更しましょう！

ファイルにカーソルをあて、右クリックでRenameを選択し、ファイル名を入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/ad9ae1f9-220c-2f54-32a3-ce9538d4e616.png)

`main.ipynb`という名前に変更しました。.ipynbという拡張子はnotebookであることを表すので、変更しないようにしましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/249ddbae-8b2d-9e66-55bf-50f0ec7d8db7.png)

画面右側のコンソールでpythonのコードを書き、shiftを押しながらエンターを押しましょう！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/922b3db9-e212-d9d9-eb9b-70df46cbf741.png)

```python
print("hello jupyter!")
```

すると想定通りの文字列が出力されましたね！これでjupyter環境を利用する準備ができました！！お疲れ様です！！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/91d8738e-ed06-5fdc-f6aa-d79600433cdb.png)

notebookの保存は一般的なエディターと同様にcommand + sを押すことで可能です。

## 仮想環境から抜ける・環境を削除する

その他詳しい利用方法などは良質な記事がたくさんあるのでそちらにお任せするとして…

仮想環境を抜けて環境を削除するところだけ説明していきます。

まずはサーバーを停止させましょう。

control + cを押した後、サーバーを停止するか聞かれるので「y」を入力してエンターで停止させましょう。

```bash
^C
[I 2022-06-03 07:25:11.901 ServerApp] 中断しました
ローカルディレクトリからノートブックをサーブ: ~/jupyter_demo
1 個のアクティブなカーネル
Jupyter Server 1.17.0 is running at:
http://localhost:8888/lab?token=xxxx
 or http://127.0.0.1:8888/lab?token=xxxx
Shutdown this Jupyter server (y/[n])? y
[C 2022-06-03 07:25:12.923 ServerApp] シャットダウンの確認
[I 2022-06-03 07:25:12.923 ServerApp] Shutting down 3 extensions
[I 2022-06-03 07:25:12.924 ServerApp] Shutting down 1 kernel
[I 2022-06-03 07:25:12.924 ServerApp] Kernel shutdown: 5cebd7fe-459f-4992-9ebc-0dc091e74f8a
[I 2022-06-03 07:25:13.139 ServerApp] Shutting down 0 terminals

❯ 
```

以下のコマンドで仮想環境を抜けます。すると、カーソル上部の(jupyter_demo)の文字が消えると思います。

```bash
conda deactivate
```

仮想環境を削除します。

```bash
conda env remove -n jupyter_demo
```

削除されたことを確認する。

conda info -eでもconda env listでもどちらでも確認できます。

しっかり削除されていそうですね！

```bash
❯ conda env list
# conda environments:
#
base                  *  ~/opt/anaconda3
```

お疲れ様でした！