Anaconda Navigatorのアップデートが終わらない
Anaconda Navigatorを開くと、度々促されるUpdate。しかたないからアップデートしようとしたらずーっとこの画面でした。

そして謎のエラー

「root」と表示されていたので少し戸惑いましたが、これはAnacondaの基本環境であるbase環境を指しているようです。
Anaconda Navigatorはbase環境に入っているため、Navigatorを更新するときはbase環境を更新します。
ターミナルからNavigatorを更新する
画面からアップデートが進まない場合は、ターミナルから更新できるらしい….ということで、
conda update --name base conda
このコマンドは、base環境にあるconda本体を更新します。
続けて、Anaconda Navigatorを更新します。
conda update --name base anaconda-navigator
このコマンドは、base環境にあるAnaconda Navigatorを更新します。
Macでcondaコマンドが使えない場合は、Anacondaの場所を指定して実行します。
/opt/anaconda3/bin/conda update --name base conda
/opt/anaconda3/bin/condaは、MacにインストールしたAnacondaのcondaを直接指定しています。
JupyterLabのインストールも終わらない
次に、動画講義で使用する環境にJupyterLabをインストールしようとしました。
/opt/anaconda3/bin/conda install --name selenium jupyterlab
このコマンドは、seleniumという名前の環境にJupyterLabをインストールするものです。
しかし、次のような表示が出て、処理が進まなくなりました。
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve.
Retrying with flexible solve.
Solving environment: -
これは、JupyterLabをインストールする前に、既存のパッケージとの組み合わせを計算している状態です。
Anacondaでは、パッケージ同士の相性や必要なバージョンを確認するため、インストールに時間がかかることがあります。
処理を止めたいとき
しばらく待っても何も変わらない場合は、次のキーを押して処理を中断できます。
control + C
ただ、今回はcontrol + Cを押してもすぐには終了しませんでした。
その場合は、別のターミナルを開いて、実行中のcondaを確認します。
ps -ax | grep '[c]onda'
このコマンドは、現在動いているcondaの処理を探します。
表示された行の先頭にある数字がプロセス番号です。その番号を使って処理を終了します。
kill プロセス番号
たとえばプロセス番号が12345なら、次のように入力します。
kill 12345
base環境とselenium環境は別
今回、少し混乱したのが環境ごとの違いです。
conda update --name base conda
このコマンドで更新されるのは、base環境だけです。
今回JupyterLabをインストールしようとしたselenium環境が、自動的に更新されるわけではありません。
selenium環境のパッケージを更新したい場合は、環境名を指定します。
conda update --name selenium
JupyterLabだけを更新する場合は、次のコマンドです。
conda update --name selenium jupyterlab
現在作られている環境を確認するには、次のコマンドを使います。
conda info --envs
venvとAnacondaを使ってみて
普段使っているvenvでは、次のように仮想環境を作成します。
python -m venv .venv
このコマンドは、プロジェクト内に.venvという仮想環境を作成します。
一方、Anacondaではcondaコマンドを使って、環境やパッケージを管理します。
venvに慣れていたため、Anacondaのbase環境やroot環境、依存関係の解決など、最初はわからないことが多くありました。
それでも、動画講義と同じ環境を実際に使ってみたことで、venvとの違いを知ることができました。
まとめ
今回わかったことは、次のとおりです。
- rootはAnacondaのbase環境を指している
- Anaconda Navigatorはbase環境に入っている
- 別の環境にパッケージを入れるときは環境名を指定する
- JupyterLabのインストールでは依存関係の計算に時間がかかることがある
- Navigatorで進まない場合は、ターミナルから操作できる
普段はvenvを使っていますが、動画講義でAnacondaが使われていたことをきっかけに、今回はAnacondaにも挑戦してみました。
実際に使ってみることで、それぞれの環境の違いを理解するきっかけになったので、結果的には良い経験になりました。