Pythonの開発環境メモ

公開

Python でなんらかのプロジェクトをはじめるうえで共通して使えそうなパッケージとかを自分のためにまとめておく。

Python バージョン、パッケージ(ついでにパッケージング)の管理

Poetry

最近来てる?パッケージ管理ツール。パッケージ管理と仮想環境の構築が簡単にできるのがよさそう。他の選択肢としてはPipenvなどがあるが、Poetry はさらにパッケージングまで行うことができるらしい。これらの情報はすべてpyproject.tomlに記述されている。

以下で.venvをプロジェクト配下に作成されるようにすると便利

poetry config virtualenvs.in-project true

また、Poetry で仮想環境を管理したくない場合は以下のようにして無効化できる。コンテナを使っているときとかあるいはembeddable package使っているときなどに便利そう。

poetry config virtualenvs.create false

pyenv

任意のバージョンの Python をインストールできる。任意のバージョンが必要なときに便利。

Poetry と併用して以下のように使える。

pyenv install 2.7.15
pyenv local 2.7.15  # Activate Python 2.7 for the current project
poetry install

テスト関連

pytest

Python のユニットテストライブラリでいまのところデファクトスタンダードらしい。ほかにもunittestnoseなどもあるが pytest の方が使い勝手がいいらしい。

tox

複数の Python バージョンでテストを実行するのに使われる。

スタイル関連

flake8

りんたー。最近一番使われている?他にもpylintなどが選択肢になる。flake8 は

  1. pep8(pycodestyle):PEP8 に準拠しているか
  2. pyflakes:論理エラー
  3. mccabe:複雑度

の計 3 つのラッパーらしいのでいろいろな観点を見てくれるらしい。

black

フォーマッター。最近一番使われている?他にもautopep8などが選択肢になる。

個別のルール設定があまりできないらしい。個人的にはルール設定の自由度が高いと個人の好みがでるだけなので、とくにマイナスにはならないと思ってる。

mypy

型チェックしてくれる。Python は 3.5 から型ヒントが導入されたけど、あくまでヒントであって型チェックはされない。

ドキュメント作成

Sphinx

知的で美しいドキュメントを簡単に作れるようにするツール

Python パッケージのドキュメントがよく同じようなフォーマットをしている正体。Docstring からドキュメントを自動生成してくれるのが便利。

おわりに

選択肢がありすぎてよくわからんというのが調べた感想…Python 難しい…

プロフィール画像
Privacy PolicyBuilt with Gatsby, © 2019 tamaosa