mambaを使ってパッケージのインストールを高速化しよう(conda installの高速化)

mambaを使ってパッケージのインストールを高速化しよう(conda installの高速化)

conda installを何気なくやるとかなり待たされることがあります。この待ち時間を減らすためにはmambaを使用することが解決策の一つとなります。

目次

インストールが全然始まらない

pandasparquetを扱いたくてconda installpyarrowをインストールしようとしましたが、インストールが全然始まりませんでした。

 $ 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に時間がかかる原因としては以下が考えられます。

  1. 依存関係の解決: condaはパッケージの依存関係を非常に厳格に解決します。そのため、多くのパッケージや複雑な環境でのインストールでは、この解決プロセスが時間を要することがあります。
  2. サーバーの応答速度: 利用しているcondaのリポジトリサーバーの応答速度やネットワークの状態によっては、パッケージのダウンロードに時間がかかることがあります。
  3. インストールするパッケージのサイズ: 大きなパッケージや多数のパッケージをインストールする場合、当然ダウンロードやインストールに時間がかかります。

この問題を解決するためには以下のような対策が考えられます。

  • 特定のチャンネルを指定
  • 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を使ってインストールする

では先ほど全然インストールが始まらなかったpyarrowmambaでインストールしていきます。

$ 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 installmambaをインストールできるので、ノックアウトファクターがほぼないので是非試してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次