Pythonの実行環境を用意するのに、Anacondaを使う方法がよく紹介されているが、デメリットもあるのだろうか?
軽く調べてみた結果をメモ。
Anacondaのデメリット
- ソフトの容量が大きく、動作が重い
- 油断すると不要なソフトをインストールしてしまう
- 細かい調整がやりにくい
Anacondaのデメリット
Anacondaのメリットでもある「様々なパッケージを一括でインストールしてくれる」という点は、同時にデメリットにも繋がりかねません。多くのパッケージを含んでいるということは、それだけ容量も大きいということです。PCの空き容量やスペックによっては動作が重くなる可能性もあります。
使わないパッケージが多いとPCの容量を無駄に圧迫していることになるので、Anacondaに含まれるツールが自分の目的と合っているか、あらかじめ確認しておきましょう。逆に、PCに十分な空き容量がなかったり必要なツールが限られていたりする場合はおすすめしない、ということになります。
また、Windowsにおいてはこの心配はありませんが、PC上にPythonがプリインストールされている(Pythonを使っているアプリがある)場合、Anacondaのインストールが他のアプリの動作に影響を及ぼす可能性があるので注意が必要です。
Anaconda導入の注意点
1.Python環境の競合に注意が必要
Anacondaのインストールを考えているPCに、他のアプリでPythonを使っている場合などの理由ですでにPythonがインストールされている場合、Anacondaをインストールすることで、以前よりPythonを使っていたアプリの動作に影響が出る可能性があるため注意が必要となります。
一方で、Windows PCにはPythonはプリインストールされていません。
そのため、個人用途のWindows PCで、Pythonをインストールしていないというのであれば、特ににAnacondaのインストールに注意を払う必要はないと言えます。
2.PCの容量を消費する
Anacondaには、Jupyter Notebookだけでなく、R言語の開発環境のRStudioやソースコードエディタのVisual Studio Codeなどの他のアプリケーションも含まれています。
そのため、PCに十分な容量がなく、不要なアプリケーションはなるべくインストールしたくないという方は、注意が必要となります。一般的に、Anacondaのインストールには最低3GB以上の空き容量が必要と言われています。
私の場合、パッケージのバージョンアップや追加なども行った状態で、7.5GB程度の容量を使用しています。これは、Pythonのコードや分析で用いるデータは含まない容量となります。
なお、不要なアプリケーションはAnacondaのツール上で削除することができます。しかし、インストールしたばかりの頃は、どのアプリケーションが自分にとって必要なのかの判断は難しく、結果的に不要なアプリケーションを削除できないまま使い続けてしまう可能性があるように思えます。
そのため、もし、不要なパッケージは極力導入したくないと考える方は、Anacondaの最小構成版であるMinicondaの導入を考えてもいいかもしれません。
3.すべてのライブラリが導入されているわけではない
Anacondaのメリットのひとつとして「データ分析に必要なパッケージが最初から揃っている」と書きました。
しかし、すべてのパッケージがあらかじめ同梱されているわけではありません。そのため、ユーザーは必要に応じて、手動で追加のパッケージを導入する必要があります。
たとえば、グラフ描画ライブラリmatplotlibはデフォルト(初期状態)では日本語表示に対応していません。そのため、グラフの日本語表示対応のためには、別途、日本語フォントをダウンロードしたうえで、環境の設定変更が必要となります。
また、ブラウザ操作の自動化を可能にしてくれるseleniumと呼ばれるライブラリも含まれていません。
そのため、スクレイピングやブラウザ自動化のプログラムを作りたい場合には、別途、パッケージの追加が必要となります。
Anacondaを使わない方が良い理由
①他のソフトが動作しなくなるかも知れない
②pipで壊れるかも知れない
③重い
teratailを見ているとAnacondaでトラブっている質問をよく見かけます。素のPythonと比べてメリットはありますか?環境構築が難しければGoogleColabで良いように思います。
Yasuhiro Niji
個人開発者 (2013–現在)執筆者は859件の回答を行い、194万回閲覧されています
3年前
Anaconda 便利です。ただし、データサイエンスと機械学習に特化しているので、Web や PC用のアプリの開発にはあまり向いていません。
便利なのは Cartopy のように依存する共有ライブラリが必要で PyPI にはバイナリー版がない場合だと、pip で入れるのって慣れていないと難しいです。Winodws になると Visual C++ を使う必要があるので本当に難しいです。Python Extension Packages for Windows からバイナリーのパッケージをダウンロードしてくるという方法はあるのですが。。。一方で conda だとバイナリーで共有ライブラリも同時にインストールしてくれるので簡単です。機械学習のパッケージでも GPU や C++ のライブラリを使っているものが多いので、Anaconda を使った方が便利なケースは多いです。
日本の場合にトラブルが多いのは、英語が嫌いで本家のドキュメントを読まずに、日本語の過去のブログ等の記事をみてインストールする人が多いためです。
自分の場合は、Anaconda と Python.org の Python の両方を使っています。両者の共存に何の問題はありません。どちらの Python にも PATH を設定しないようにするだけです。
トラブルが多くなる原因の一番は、PATH を設定しない場合の Python の起動やパッケージのインストールの方法が、日本語の記事では殆ど書かれていないため、記事どおり設定すると、他の環境を壊すとか、他の環境にパッケージをインストールしてしまうとかのケースが多いです。
詳しくは、 Python 環境構築いろいろ - Windows - Qiita の方に書きましたので、そちらをみてください。
Pythonを始める時には Google Colab を使おう
Pythonを始める時に、Python のインストールで躓く人も結構いたのではないでしょうか。今は、「Google Colaboratory」を使うと Python をインストールすることなく、Python の学習を始めることができます。ブラウザがあればすぐに使い始められて環境構築が不要なので、これよりも楽な環境構築はないでしょう。Google Colab は、Jupyter Notebookのクラウドサービスで、PythonやNumpyなど、データ分析や機械学習で必要なほぼ全ての環境がすでに構築されています。
使い方は至って簡単で、http://colab.research.google.com/ にアクセスして、Googleアカウントでサインインするだけです。
まとめ
Anacondaを使うメリットは、ほぼ一発で簡単にPython実行環境をインストールできること。
デメリットは、インストールが簡単なこと以外は、それほどメリットがなさそうなこと。
- JupyterNotebookを使いたいだけなら、最初は無料のGoogle Colaboratoryを使う手もある。
- それで役不足なら、ローカルPCにAnacondaを入れて使ってみる。
- Pythonにある程度慣れたら、Anacondaをやめて、自前でPythonをインストールして使う。
そんなかんじでいいかな?