目次
- flake8
- pyformat
- isort
- mypy
- bpython
- ipdb
概要
仕事でよくつかうパッケージからプライベートで開発するときに、必ずインストールしているパッケージをまとめて紹介してみた。
データサイエンス系の人はJupyterを使うと思うのでWeb開発向きだと思います。
DjangoなどWebフレームワークを使うときは便利な専用のパッケージもありますが本記事には記載してないです。
パッケージ管理はPipenvやpoetryなど有名なものがあるがこの記事では書いてないです。
動作環境
筆者の動作環境。
環境に依存したパッケージはないはずだが念の為。
MacOS
Python 3.8.0
anyenv 1.1.1
pyenv 1.2.15-1-g49bf5952
紹介するPythonパッケージ
flake8
$ pip install flake8
プロジェクト内のコードがpythonのコーディング規約「PEP8」に沿ったスタイルになっているかチェックしてくれるライブラリです。
いわゆるLinter(リンター)の一つです。
Linterには普通の「pep8」や「pyflakes」というものがありますが,
flake8はこの2つのLinterの機能を合わせ持っており、より厳格にコーディングチェックができます。
なので、誰が書いても良い意味で同じようなコードになり見通しの良いコードを書くことに繋がります。
pyformat
$ pip install pyformat
formatter(フォーマッター)の一つです。
Pythonのコーディング規約に則って、コードを自動で整形してくれます。
コーディングスタイルを整える時間を減らすことができ開発に専念できます。
flake8と合わせて使うと強力でしょう。
他にも「autopep8」「yapf」「black」というツールもありますが、
自分の好みやプロジェクトに合わせて選択してください。
筆者はpyformatのスタイルが好きで使ってます。
isort
$ pip install isort
インポートをソートすることに特化した自動整形ツールです。
Pythonでは
from hogehoge import foo
import sample
のようにインポートしてライブラリを使います。
このインポートの順番を自動でソートしてくれます。
通常のフォーマッターにはインポートの順番まで整えてくれるものがないので「isort」を使うことでそこを補います。
mypy
$ pip install mypy
大規模なプロジェクトではPythonのような動的型付言語ではコードが理解しにくくなっていきます。
そこでmypyを使うと静的言語のような型を指定しチェックができるようになります。
bpython
$ pip install bpython
pythonの対話型shellでコードの補完。文字のハイライトをしてくれる
似たもので「ipython」があるが筆者はbpythonが見やすくて使ってます。
$ bpython
ipdb
$ pip install ipdb
pythonには標準で「pdb」というデバッガーツールがありますが、コード補完やハイライトはしてくれません。
そこでipythonライクにハイライト、補完してくれるのが「ipdb」です。
set_trace()でコード内にブレークポイントを設置でき、そのコードのスコープ内で宣言されている変数等がちゃんと補完されます。
最後に
まとめてpipインストール
$ pip install flake8 pyfortmat isort mypy bpython ipdb
Pythonには似たようなライブラリが多く技術選定に迷いがちです。
効率良く、そして気持ちよく開発するために参考になれば良いと思います。
ここのリンクには有名なライブラリがまとまっているので参考にしてみても良いかも知れません。
Awesome Python:素晴らしい Python フレームワーク・ライブラリ・ソフトウェア・リソースの数々
https://qiita.com/hatai/items/34c91d4ee0b54bd7cb8b