conda install
を何気なくやるとかなり待たされることがあります。この待ち時間を減らすためにはmamba
を使用することが解決策の一つとなります。
目次
インストールが全然始まらない
pandas
でparquet
を扱いたくてconda install
でpyarrow
をインストールしようとしましたが、インストールが全然始まりませんでした。
$ conda install pyarrow
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): | WARNING conda.models.version:get_matcher(546): Using .* with relational operator is superfluous and deprecated and will be removed in a future version of conda. Your spec was 1.8.0.*, but conda is ignoring the .* and treating it as 1.8.0
WARNING conda.models.version:get_matcher(546): Using .* with relational operator is superfluous and deprecated and will be removed in a future version of conda. Your spec was 1.9.0.
*, but conda is ignoring the .* and treating it as 1.9.0 done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: |
conda install
に時間がかかる原因としては以下が考えられます。
- 依存関係の解決:
conda
はパッケージの依存関係を非常に厳格に解決します。そのため、多くのパッケージや複雑な環境でのインストールでは、この解決プロセスが時間を要することがあります。 - サーバーの応答速度: 利用している
conda
のリポジトリサーバーの応答速度やネットワークの状態によっては、パッケージのダウンロードに時間がかかることがあります。 - インストールするパッケージのサイズ: 大きなパッケージや多数のパッケージをインストールする場合、当然ダウンロードやインストールに時間がかかります。
この問題を解決するためには以下のような対策が考えられます。
- 特定のチャンネルを指定
mamba
の利用- 環境を最小限に保つ
- パッケージキャッシュのクリア
今回はこの中から、お手軽で高い効果のある「mamba
の利用」を適用していきます。
mambaのインストール
まずはmamba
をインストールします。
conda install -c conda-forge mamba
conda install
にかかる時間を減らす一つのテクニックとしてチャネルを指定する方法があります。ただ、mamba
をチャネル指定なしでインストールしてもそれほど時間がかからなかったので、チャネル指定がなくても大丈夫だと思います。
他にチャネルの指定する方法はあるので、conda-forge
へのリンクを貼っておきます。
condaのキャッシュをクリアする
念のためconda
のキャッシュをクリアしておきます。
$ conda clean -a
Will remove 411 (631.3 MB) tarball(s).
Proceed ([y]/n)? y
Will remove 1 index cache(s).
Proceed ([y]/n)? y
Will remove 83 (826.7 MB) package(s).
Proceed ([y]/n)? y
There are no tempfile(s) to remove.
There are no logfile(s) to remove.
何度か質問されるのでいずれの質問にもy
を回答します。
mambaを使ってインストールする
では先ほど全然インストールが始まらなかったpyarrow
をmamba
でインストールしていきます。
$ mamba install pyarrow
Looking for: ['pyarrow']
conda-forge/osx-arm64 6.7MB @ 13.6MB/s 0.5s
conda-forge/noarch 12.4MB @ 23.9MB/s 0.5s
・・・
Confirm changes: [Y/n] y
・・・
Downloading and Extracting Packages
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
処理時間が格段に短くなるものそうですが、待ち時間が短縮されるので体感的にも早く感じられ、ストレスが軽減されるのがよいですね。
まとめ
データ分析や機械学習の作業でconda
を使ってインストール作業を行う場合はmamba
コマンドを使った方が素早く作業を進められます。
外部プログラムをインストールする訳ではなく、conda install
でmamba
をインストールできるので、ノックアウトファクターがほぼないので是非試してみてください。