ペキプ☆ツンデレ研究

こだわりやな管理人が日常気になったことや調べたことなどを紹介していきます。

Python環境を構築する前に考えておきたい事

巷には「Python インストール」といった検索をすることで簡単にPythonをインストールする方法を知ることができるけど、始める前に知っておいた方が良いこと・後からだとやり直しになることがあったのでまとめてみました。

どのバージョンを選択する?

Python Software Foundation(本家)のサイトでは、現在2.X系と3.X系のリリースバージョンがダウンロードできる。
2.X系の最新は 2.7.13、3.X系の最新は3.7.0となっている。(2018/08/01時点)

www.python.org

本家サイトのFQA(https://docs.python.org/3/faq/general.html#how-stable-is-python)では、2つのバージョンについて
以下のように言及されています。

There are two recommended production-ready versions at this point in time, because at the moment there are two branches of stable releases: 2.x and 3.x. Python 3.x may be less useful than 2.x, since currently there is more third party software available for Python 2 than for Python 3. Python 2 code will generally not run unchanged in Python 3.

訳すと、

「現時点では、2.x系と3.x系の安定版リリースの2つのブランチがあるので、2つの推奨バージョンが存在することになります。現在サードパティ製で利用可能なライブラリはPython 3よりもPython2の方が充実しているため、Python3.xは2.xよりも利用できない状況があるかもしれません。Python2のコードは一般的にPython3では変更なしに実行できないでしょう。」

みたいな感じです。

ちょっと情報が古いままなのかもしれません。現時点ではPythonの主要と思えるライブラリはPython3に対応していますので実際問題として困ることは少ないと思います。
ただ業務システム等でニッチなライブラリを使用している現場でPython3へのバージョンアップする場合は慎重に確認が必要でしょう。

結局「どのバージョンを選択するの?」という問いに対する答えは、これからPythonで開発する・学習するといった場合は Python3 一択です。

余程の理由がない限り、一から始める場合に Python2 を選択する理由はありません。

Python2系と3系の違いって何?

細かい違いをツラツラ書き連ねるとすごい量になるので、興味のある方は私も参考にさせてもらった下記サイトで詳細は確認してみてください。

qiita.com

見て頂くと分かるんですが、一番困るのが同じプログラムでも「エラーにならず」に「挙動だけ変わる」ものがあることですね。
せめて実行時にエラーにでもなってくれれば、動かないんだなと気づきますが、シレッと挙動だけ変わってた場合は気づかずに不具合を含んだままとなってしまう可能性があります。

Pythonの開発環境を構築する前に

さて、ここからが本題ではありますが、いざPythonの開発環境をを自分のマシンに導入する際は、今後どのような環境管理ツールを利用していくか最初に決める必要があります。

私は当初、書籍やネットの情報で言われるがまま環境構築を行ったため酷い目にあいました。(笑)

現在、Python の環境管理は以下のツールが主流です。
それぞれ微妙に利用目的が違いますが主にPythonの複数のバージョン管理やライブラリパッケージの環境(仮想環境)を切り替える目的で利用します。

  • virtualenv
  • pyenv
  • venv
  • pipenv
  • Anaconda

結論からすると、私がやりたいのは「Python機械学習!」ということでデータサイエンス向けに科学技術計算などのモジュールやツールがパッケージになった Anaconda を導入する決意をしました!

各ツールの詳細やメリット・デメリットについては下記のサイトが良くまとめられてるので、特に機械学習やデータサイエンスに関わらずPythonを学習したい方は一読されることをお勧めします。

Pythonの環境管理ツール良し悪し - Zopfcode

まとめ

私は最初てきとーに巷の情報を参考に意味も理解しないままPythonの開発環境を構築した結果、相当な時間をそのトラブル対処に費やしました。

少なくとも本記事で書いたことを事前に検討して理解してから導入してたらもっとよかったのにとの後悔から書いてます(笑)

一番困ったのは Anaconda の conda コマンドと pip コマンドを混在してパッケージインストールとかしてたので、インストールしたのに conda 環境で動かないとか依存関係とかがスパゲッティになったことです。

  • Python のバージョンは 3.x 系。特に問題がなければ最新のバージョンを利用する。
  • 周りの情報に流されず正しく理解してデータサイエンス目的に使うなら Anaconda も良い。

では、後悔のない Python ライフをお楽しみください!