開発やデバッグが捗るPythonライブラリ6選

目次

  1. 概要
  2. 動作環境
  3. 紹介するPythonライブラリ
    • flake8
    • pyformat
    • isort
    • mypy
    • bpython
    • ipdb
  4. 最後に

概要

仕事でよくつかうパッケージからプライベートで開発するときに、必ずインストールしているパッケージをまとめて紹介してみた。
データサイエンス系の人はJupyterを使うと思うのでWeb開発向きだと思います。
DjangoなどWebフレームワークを使うときは便利な専用のパッケージもありますが本記事には記載してないです。
パッケージ管理はPipenvやpoetryなど有名なものがあるがこの記事では書いてないです。

動作環境

筆者の動作環境。
環境に依存したパッケージはないはずだが念の為。

MacOS
Python 3.8.0
anyenv 1.1.1
pyenv 1.2.15-1-g49bf5952

紹介するPythonパッケージ

flake8

https://pypi.org/project/flake8/

$ pip install flake8

プロジェクト内のコードがpythonのコーディング規約「PEP8」に沿ったスタイルになっているかチェックしてくれるライブラリです。
いわゆるLinter(リンター)の一つです。
Linterには普通の「pep8」や「pyflakes」というものがありますが,
flake8はこの2つのLinterの機能を合わせ持っており、より厳格にコーディングチェックができます。
なので、誰が書いても良い意味で同じようなコードになり見通しの良いコードを書くことに繋がります。

pyformat

https://pypi.org/project/pyformat/

$ pip install pyformat

formatter(フォーマッター)の一つです。
Pythonのコーディング規約に則って、コードを自動で整形してくれます。
コーディングスタイルを整える時間を減らすことができ開発に専念できます。
flake8と合わせて使うと強力でしょう。
他にも「autopep8」「yapf」「black」というツールもありますが、
自分の好みやプロジェクトに合わせて選択してください。
筆者はpyformatのスタイルが好きで使ってます。

isort

https://github.com/timothycrosley/isort

$ pip install isort

インポートをソートすることに特化した自動整形ツールです。

Pythonでは

sample.py
from hogehoge import foo
import sample

のようにインポートしてライブラリを使います。
このインポートの順番を自動でソートしてくれます。
通常のフォーマッターにはインポートの順番まで整えてくれるものがないので「isort」を使うことでそこを補います。

mypy

https://github.com/python/mypy

$ pip install mypy

大規模なプロジェクトではPythonのような動的型付言語ではコードが理解しにくくなっていきます。
そこでmypyを使うと静的言語のような型を指定しチェックができるようになります。

bpython

https://bpython-interpreter.org/

$ pip install bpython

pythonの対話型shellでコードの補完。文字のハイライトをしてくれる
似たもので「ipython」があるが筆者はbpythonが見やすくて使ってます。

$ bpython

bpython1.png

ipdb

https://pypi.org/project/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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away