LoginSignup
166
217

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-11-10

目次

  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


$ 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では

sample.py
from hogehoge import foo
import sample

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

mypy


$ pip install mypy

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

bpython


$ pip install bpython

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

$ bpython

bpython1.png

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

166
217
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
166
217