Anaconda食わず嫌いからの脱却
Pythonでコードを書くときにはPipenvを利用して仮想環境を構築することがほとんどなんですが、ここ最近GISデータを変換したり解析したりすることが多くなってきていて「あんまり詳しくないけどJupyterとか使ったら楽っぽいよなー」とか思ったのがきっかけでAnacondaやjupyterを利用し始めたのですが、これがとても快適だったので皆さんにもおすすめしていこうというやつです。
Anacondaはhomebrewとめちゃ相性が悪いとか他の仮想環境と競合してきついとかアンインストールできねぇとか色々聞きますが、アプリケーション開発時にはDockerを利用して環境構築することでそれらをほぼ無視することができると思うので、勇気を出してレッツトライ。
Anacondaをインストールする
こんな環境でやっていきます。
❯ sw_vers
ProductName: macOS
ProductVersion: 12.4
BuildVersion: 21F79
こちらの記事とかとても参考になりました!
https://ai-inter1.com/python-install/#st-toc-h-3
基本的にはhttps://www.anaconda.com/products/distribution にアクセスすると勝手に自信のOSのインストーラーが選択されるので、一応確認してダウンロードするだけです。
「Download」をクリックすると(macであれば).pkgファイルがダウンロードされるので、起動してインストーラーの指示に従うだけでインストールできると思います。
※注意
ちなみにご存知の方も多いとは思いますが、Anacondaは2020年より「大規模な環境での利用」は有料となっておりますのでご注意ください。
(https://qiita.com/tfukumori/items/f8fc2c53077b234384fc の記事などが参考になるかと思います。また、公式サイトもご確認ください)
Anacondaを使ってみる
インストールが終わるとランチャーにAnaconda-Navigatorが現れると思いますが、ターミナルから触れると何かと便利なので、コマンドラインで利用できるように設定します。
自分が利用しているシェルを調べて…
❯ echo $SHELL
/bin/zsh
初期化しましょう。
❯ conda init zsh
❯ source ~/.zshrc
※この段階ではもしかすると「condaコマンドが見つからないよ」と怒られるかもしれません。
その場合はパスを自分で通す必要があります。
おそらく/Users/<user_name>/opt/anaconda3/bin/
ディレクトリにconda
コマンドが存在していると思いますので、これをパスに追加しましょう。
以下のようなコマンドを入力すると、確かにcondaという実行ファイルが存在していますね。
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
これでターミナルを再起動すると以下のようなコマンドでバージョンが表示されるはずです。
❯ conda -V
conda 4.12.0
これで準備OK!
(勝手に初期設定の仮想環境が立ち上がるのを防ぐ)
この段階では、どこでターミナルを開いてもcondaのbase仮想環境が立ち上がってしまうので、それを防ぎましょう。
conda config --set auto_activate_base false
仮想環境の作成とjupyter labをインストール
まずは適当に作業用フォルダを作りましょう。
mkdir jupyter_demo
cd jupyter_demo
次に仮想環境を作成してみましょう。セットアップが完了しているcondaコマンドを利用します。
途中で入力を求められるので「y」を押してエンターを押しましょう。
❯ 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
次にアクティベートします。
conda activate jupyter_demo
するとこんな感じでターミナルのカーソルの上に(jupyter_demo)と表示されるはずです。
これで準備完了です。
(jupyter_demo)
~/jupyter_demo via 🅒 jupyter_demo...
❯
仮想環境の名前を忘れてしまった場合は以下のコマンドで仮想環境の一覧を取得できます。
❯ conda info -e
# conda environments:
#
base ~/opt/anaconda3
jupyter_demo * ~/opt/anaconda3/envs/jupyter_demo
base仮想環境には初めからjupyterがインストールされていますが、jupyter_demo仮想環境がアクティブになっている状態でconda list
コマンドでインストールされたパッケージを確認すると何もインストールされていません。
❯ conda list
# packages in environment at ~/opt/anaconda3/envs/jupyter_demo:
#
# Name Version Build Channel
jupyter labをインストールしましょう。
インストール時に大量のパッケージがインストールされることを確認されますが、全てjupyter labの起動に必要ですので、先ほど同様に「y」を入力してエンターを押しましょう。
❯ 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%
...
インストールされたかどうか確認します。
❯ 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の作業ディレクトリをカレントディレクトリに指定するという意味です。
僕の環境では作業ディレクトリを別な場所に固定する設定を行っているため、ディレクトリの指定が必要になりますが、インストールしたての方であれば最後の「.」は不要かもしれません。
❯ 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 にアクセスしましょう!
試しにファイルを作ってPythonのコードを動かしてみましょう!
ファイル作成は右クリック(macでいうところのダブルタップ)→「New Notebook」ボタンから行えます。
クリックすると「カーネルは?」と聞かれるのでそのままSelectで決定しましょう!
すると画面左のサイドバーにUntitled.ipynb
が作成されるので、適当に名前を変更しましょう!
ファイルにカーソルをあて、右クリックでRenameを選択し、ファイル名を入力します。
main.ipynb
という名前に変更しました。.ipynbという拡張子はnotebookであることを表すので、変更しないようにしましょう。
画面右側のコンソールでpythonのコードを書き、shiftを押しながらエンターを押しましょう!
print("hello jupyter!")
すると想定通りの文字列が出力されましたね!これでjupyter環境を利用する準備ができました!!お疲れ様です!!
notebookの保存は一般的なエディターと同様にcommand + sを押すことで可能です。
仮想環境から抜ける・環境を削除する
その他詳しい利用方法などは良質な記事がたくさんあるのでそちらにお任せするとして…
仮想環境を抜けて環境を削除するところだけ説明していきます。
まずはサーバーを停止させましょう。
control + cを押した後、サーバーを停止するか聞かれるので「y」を入力してエンターで停止させましょう。
^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)の文字が消えると思います。
conda deactivate
仮想環境を削除します。
conda env remove -n jupyter_demo
削除されたことを確認する。
conda info -eでもconda env listでもどちらでも確認できます。
しっかり削除されていそうですね!
❯ conda env list
# conda environments:
#
base * ~/opt/anaconda3
お疲れ様でした!