文書の過去の版を表示しています。


Pythonの利用法

プログラミング言語なので、インストールして使うのが基本だが、インストールの選択肢が豊富すぎて、入門時に迷うことになる。

  • Pythonは言語としてはhttps://python.orgで開発されていて、ソースが定期的に更新される。WindowsとmacOSのためのパッケージも提供されている。
  • 主なLinux Distroは公式のPythonパッケージを提供していて、yum、apt-getで指定してインストールできる。
  • Anacondaをインストールすれば、なんでもこれで管理できる。
  • Windows用にはActive Pythonもある。Windowsでは、CygWinの上でapt-cyg、もしくはBash on Ubuntu on Windowsの上でapt-get、という選択肢もある。
  • macOSでは、HomebrewMacPortsが導入済みなら、それらからのインストールが可能である。

どの手段を選択するのが良いかを説明する前に、Pythonの導入後に意図せずに陥る状況を整理しておく。

  • それまで動いていたコードが急に、エラーを表示して動かなくなる。
  • チーム内、あるいは外部とコードを共有する際に、実行に必要なPythonのバージョンと利用するパッケージあるいはモジュールのバージョンの明示を要求される。
  • 開発する際に、用いるバージョンをPythonとパッケージとモジュールすべてで指定される。

これらはいずれも、Pythonが現在も活発に開発が進んでいる言語であること、Pythonのコアはミニマルな仕様を心がけていて多くの機能を標準ライブラリ、外部の組織が提供するパッケージに頼っていることに起因するトラブルです。例えば有名なscikit-learnやTensorFlow、またPyTorchなど、一つのパッケージが用いるコードの全てがその開発チームによって保守されていることは稀で、NumPyやPandasなど、複数のパッケージをベースに書かれている。そのため、ベースにしたNumPyやPandasなどのパッケージのバージョンが上がる際に、その変更内容が仕様の変更を伴うのに、利用しているパッケージへの影響発生を回避できないように更新されると、Pythonを取り巻く開発の渦の一番外側にいるユーザにまで影響が及び、昨日まで動いていたコードがエラーを表示して動かなくなるという影響を受ける。

Python本体と利用するすべてのパッケージのバージョンの組み合わせを、使っているPython環境と呼ぶと、これをシステム管理者によって更新されることは、プログラマーにとっては迷惑でしかない。そのため、Pythonを業務や研究に用いる際には、セキュリティホールの影響を受けない開発環境を構築することと、Python本体と利用するすべてのパッケージのバージョンを任意のもので固定し続けることの2つのスキルが必須になる。