Python でなんらかのプロジェクトをはじめるうえで共通して使えそうなパッケージとかを自分のためにまとめておく。
Python バージョン、パッケージ(ついでにパッケージング)の管理
Poetry
最近来てる?パッケージ管理ツール。パッケージ管理と仮想環境の構築が簡単にできるのがよさそう。他の選択肢としてはPipenvなどがあるが、Poetry はさらにパッケージングまで行うことができるらしい。これらの情報はすべてpyproject.tomlに記述されている。
以下で.venvをプロジェクト配下に作成されるようにすると便利
poetry config virtualenvs.in-project trueまた、Poetry で仮想環境を管理したくない場合は以下のようにして無効化できる。コンテナを使っているときとかあるいはembeddable package使っているときなどに便利そう。
poetry config virtualenvs.create falsepyenv
任意のバージョンの Python をインストールできる。任意のバージョンが必要なときに便利。
Poetry と併用して以下のように使える。
pyenv install 2.7.15
pyenv local 2.7.15 # Activate Python 2.7 for the current project
poetry installテスト関連
pytest
Python のユニットテストライブラリでいまのところデファクトスタンダードらしい。ほかにもunittestやnoseなどもあるが pytest の方が使い勝手がいいらしい。
tox
複数の Python バージョンでテストを実行するのに使われる。
スタイル関連
flake8
りんたー。最近一番使われている?他にもpylintなどが選択肢になる。flake8 は
- pep8(pycodestyle):PEP8 に準拠しているか
- pyflakes:論理エラー
- mccabe:複雑度
の計 3 つのラッパーらしいのでいろいろな観点を見てくれるらしい。
black
フォーマッター。最近一番使われている?他にもautopep8などが選択肢になる。
個別のルール設定があまりできないらしい。個人的にはルール設定の自由度が高いと個人の好みがでるだけなので、とくにマイナスにはならないと思ってる。
mypy
型チェックしてくれる。Python は 3.5 から型ヒントが導入されたけど、あくまでヒントであって型チェックはされない。
ドキュメント作成
Sphinx
知的で美しいドキュメントを簡単に作れるようにするツール
Python パッケージのドキュメントがよく同じようなフォーマットをしている正体。Docstring からドキュメントを自動生成してくれるのが便利。
おわりに
選択肢がありすぎてよくわからんというのが調べた感想…Python 難しい…