概要
Pythonは「pip」が優秀で、情報もあふれているので最近よく使用しています。
ここでは、一つ一つのライブラリの使い方については説明しません。開発分類別に私が採用しているライブラリを列挙し、ライブラリの導入方法について説明します。
開発環境
私は特別にこだわりはないので「Anaconda」を使用しています。本当はLinux PCで「virtualenv」を使用し環境を組みたいと思っているけれど、すでにWindowsで環境を組んでしまっているので、面倒くさがっています。
開発分類
- Webアプリ開発
- 組込みソフトウェア(センサ制御)
- デスクトップアプリ
- 画像処理
- 機械学習
Webアプリ開発
サーバサイドのプログラムを作成できます。私が採用していているのは「flask」です。PythonのWebフレームワークとしては「Django」ですが、こちらは機能もりもりのフレームワークです。それに対し、flaskは機能は単体では機能が少ない代わりに、覚えることが少ないです。
flaskはサーバサイドレンダリングできるのですが、そのうちflaskはREST API的にサーバサイドの処理だけを担当させ、クライアント側はJavascriptで作成する方が良かったりするので、flaskのレンダリング機能はそこそこで勉強すれば良いと思います。
flaskはpipからインストールできます。
pip install flask
組込みソフトウェア(センサ制御)
ここで対象とするのはセンサ制御です。とはいえ、現在は使い方が簡単なセンサがたくさん出ているので、覚えることは少ないです。基本的には「pyserial」を使用すれば良いです。あとはシリアル通信に必要な設定さえ分かっていれば、結構色々なセンサ情報を取得できるので、遊ぶには上等です。
pip install pyserial
デスクトップアプリ
私はデスクトップアプリ開発時は「tkinter」を使います。
Pythonでのデスクトップアプリ開発ではQtがよく使われているように思いますが、商用の場合はライセンス料が高くて採用できません。また、tkinterはPython導入時に標準で使用できるので、開発環境構築に悩むことはありません。
「tkinter」は表のようにフレームを配置するイメージでいれば、そこまでデザインに悩む必要はありません。
画像処理
画像処理であれば「OpenCV」一択のような気がします。最近は機械学習系のこともできるらしいですが、
pip install numpy
pip install opencv-python
機械学習
機械学習であれば、情報量として「Tensorflow+keras」を選択するのが現在は安全なのかと思います。今は「PyTorch」が人気を上げてきているように思いますが、情報だけ取得するくらいでまだ良いと思います。
構造的にはTensorflowの中にkerasが内蔵されている形になっています。TensorflowはAnacondaからインストールした方が良いです。私の別の記事(メモ?)で説明しています(https://qiita.com/StrayDog/items/5b91096133ea65bfd5ec)。
でも、最近少し「pytorch」が気になっている。
pip install numpy