Translate

Anacondaを使っていると気づかすにかなりの容量に。。。conda clean --all コマンドで50GB以上節約できた。

pythonを扱う上でAnacondaはもはや必須のソフトであるといえますね。特にpythonのバージョンに依存するようなパッケージを使う場合には、Anacondaを使った仮想環境を構築するのが非常に便利です。

しかしながら、Anaconda使った仮想環境構築をいろいろと使っていると容量がかなり増えてくるのがネックですね。

甘味もAnacondaを使っていろんなpythonパッケージを入れていると気づいた時には、数10GBになっていて、買った時には500GB以上あった容量がもはや数10GBしか残っていないといった状態になっていました。。。(笑)


今回は、Anacondaの容量をうまく管理するための方法について紹介していこうと思います。


Anacondaが気づいたらすごい容量を食っていた事実



私も最近趣味でいろいろと動画処理を扱うpythonの環境構築をAnacondaを使っていろいろとやっていて、いろんな仮想環境を作ったり、パッケージを入れたりしていました。

そうこうして気づいたら、残りのストレージの容量がもはや10GBちょっとしか残っていない状態になっていました。

当初は、動画の生データファイル(主にIntel Realsense関連)が容量を食っているのかなと思っていたのですが、その生の動画ファイルを整理した上でドキュメントフォルダを減らしても全然ストレージ容量が空かない状態でした。

他にソフトウェアをダウンロードをした記憶もないし、画像や動画はOnedriveで管理しているし、思い当たる節がない。。。

手当たり次第に、Cドライブやユーザ領域内で容量を食っている領域を探してみると、なんとAnacondaの領域でとんでもない量のストレージを食っていることが判明しました。

Anacondaのストレージ圧迫の理由は使っていないパッケージやキャッシュデータ

Anacondaがストレージを大きく圧迫している事実がわかりましたが、どうしてこのようにAnaconda のデータが膨大になってしまったのかについてちょっと調べてみました。

そうすると、どうもAnacondaでインストールしたキャッシュファイルの残骸が残っているみたいでそれが大きな原因のようです。

特に更新の多いパッケージだったり、いろいろ仮想環境をいじって、Anaconda上で古いバージョンにダウングレードしたりしていると、過去にインストールしたパッケージのキャッシュデータだったり、ダウンロード用のファイルが残ってしまうらしいです。これがAnacondaのデータ量が肥大化する原因のようですね。

Anacondaのデータ量を減らすには conda crean ーーallが手っ取り速い

では肥大化したAnacondaのデータに対してどのような処理をしたら減らすことができるのでしょうか?手作業でAnacondaのデータ領域内のデータを消したりいじったりするのは得策ではないでしょう。必要なものまで消してしまってAnacondaそのものが壊れてしまうのがオチです。

Anacondaにはそういったキャッシュデータをクリアするためのコマンドがしっかりと用意されています。その名もconda crean --allコマンドです。

conda crean --allコマンドを使ったストレージのクリーンアップは非常に簡単です。具体的なプロセスとしては、いつも行っているconda install ○○の処理とほとんど同じです。

いつもconda install やpip install を打っているAnaconda プロンプトに上記のconda crean --allのコマンドを打ち込むだけです。

Anacondaプロンプトの場所は、Windowsのスタートから行けるAnaconda Navigatorから開くか、同じディレクトにあるAnacondaプロンプトを開くのがよいでしょう。

Anaconda Navigator からAnacondaプロンプトに行く場合には、Anaconda NavigatorのEnvironmentタブを押して、そこに出てくる自分で作った仮想環境の所の緑色の三角ボタンを押すと open Terminal を押すとAnacondaプロンプトを開くことができます。パッケージのインストールとほとんど同じプロセスですね。

私の場合50GB以上容量空けることができました。

私もこのconda crean --allをやってみたところ、その効果は圧倒的でした。このコマンドを打つと使っていないパッケージやキャッシュのリストが一覧で出てきます。そうすると出るわ出るわ。。。使っていないパッケージの山々。numpyだけでもこんなに使っていない過去のバージョンのパッケージが入っていたのかと思うとびっくりです。

そんな感じでリストに挙がった使っていないパッケージやいらないキャッシュがなんと50GB以上存在していました。こんだけ使っていないデータが蓄積してしまっていたらそりゃストレージがなんぼあっても足りませんわ(笑)。

そうしてストレージをクリーンアップした後に、普段使っているspyderを開いていつも書いているコードがちゃんと動くか確認しましたが、ばっちりと動いてくれました。

たぶんこんなに要らないパッケージやキャッシュがたまったのは、私のケースだとpytorchの環境設定する際に、何度も失敗していろんなバージョンのパッケージを入れてしまったのが原因だったのかもしれないなーと感じています(ただでさえ、機械学習系のパッケージはデータ容量が比較的重たいのに。。。)。

Anacondaの定期的なクリーンアップは一考の余地あり

まさかAnacondaのクリーンアップだけでこんなにもデータがきれいになるとは思いもしませんでした。私みたいに闇雲にいろいろAnacondaにパッケージを入れて無理やり環境構築する初心者プログラマーの場合には、定期的にやった方がいい処理なのかもしれません。
ただし、他にもいろいろと調べてみるとこのconda crean --allを打った後に、jupyter notebookが動かなくなることがあるみたいです。

私は普段はpythonのコードを書く時のエディタはspyderを使っているので、他のエディタを使っている場合には、予期しないエラーが起こるかもしれないの要注意ですね。こればかりは自分の使っている環境との相談になるので、下調べをしっかりとしたうえでconda crean --allをうまく使っていきましょう。