LoginSignup
20
12

More than 3 years have passed since last update.

チームにおける円滑なPython開発環境 [Poetry + pyenv + black + isort]

Last updated at Posted at 2020-04-12

チームにおける円滑なPython開発環境 [Poetry + pyenv + black + isort]

チームで開発環境を統一できると共同作業が格段に楽になります.この記事ではpoetry + pyenvにより仮想環境を統一し,black + isortによってコードの自動フォーマットを設定します.

Editor

好きなものを使用してください.vimでもpycharmでもVScodeでも.ここではVScode前提で設定を記します.

  • VSCode

vscodeのインストール方法は以下

仮想環境

仮想環境を使用することでチームでコードを書く際に実行環境を揃えることができ,共同作業の効率がぐんと上がります.ここでは以下の仮想環境ツールを使用します.

  • pyenv
  • poetry

インストール方法はこの記事を参照してください.

pyenvを使用して使用するPythonをインストールする.

以下のコマンドで使用できるPythonのバージョンをリストアップできます.

pyenv install --list

今回はPython 3.7を導入することにしましょう.

pyenv install 3.7

pyenvの詳しい使用方法はこの記事を参照してください.

poetryによる新規プロジェクトの作成

プロジェクトを新規作成する場合,以下を実行します.仮想環境をプロジェクトのディレクトリ直下に置くためにpoetry config virtualenvs.in-project trueを同時に実行します.(VSCodeを正しく動かすために必要)

poetry config virtualenvs.in-project true
poetry new new_project

pyproject.tomlの設定

すると,プロジェクト内にpyproject.tomlというファイルが生成されます.このファイルが設定ファイルとなり,今後編集していくものとなります.前の項でインストールしたPythonのバージョンを指定してみましょう.以下のように記述することでPython 3.7系を使用することを明記できます.

[tool.poetry.dependencies]
python = "^3.7"

仮想環境の構築

その後,以下のコマンドでPythonの仮想環境を構築,インストールすることができます.

poetry install

ライブラリのインストール

この仮想環境内に新しいライブラリをインストールしたい場合は以下のようにadd optionを指定する.ここではblack, isort, flake8, mypyを開発用(-D option)でインストールしてみましょう.

poetry add flake8 -D
poetry add black -D
poetry add isort -D
poetry add mypy -D

仮想環境内での実行

仮想環境内で実行したい場合,プログラムを仮にyour_program.pyと置くと以下で実行できる.

poetry run python your_program.py

仮想環境内でのシェルの実行

また,仮想環境内でシェルを実行したい場合は以下を打つことで,シェルが起動する.

poetry shell

既存プロジェクトへのpoetryの導入

すでにプロジェクトyour_projectが存在する場合,以下を実行します.仮想環境をプロジェクトのディレクトリ直下に置くためにpoetry config virtualenvs.in-project trueを実行します.(VSCodeを正しく動かすために必要)

cd your_project
poetry config virtualenvs.in-project true
poetry init
poetry install

initをするときにtestなどのディレクトリを作成されたくない場合は以下の--no-interactionのoptionを指定してください.

poetry init --no-interaction

poetryの詳細な使用方法

詳細な使用方法は「公式document (英語)」か「この記事: Poetry: Python の依存関係管理とパッケージングを支援するツール」,「この記事: Poetryを使ったPythonパッケージ開発からPyPI公開まで」を参照してください.

VSCodeでpoetryで作成した仮想環境のPythonをinterpreterとして使用

作成したプロジェクトをVSCodeで開きます.適当なPythonファイルを作成 or 選択し,左下の select interpreterを押し,.venv内のPythonを選択します.

Python formatterの導入

チームでコードを書く際に書き方が統一されていると,コードが読みやすくなり,円滑にコーディングが進みます.ここではblackで自動でコードをフォーマットし,isortでimport文の順序を揃えることで,自動的に書き方が統一されるようにします.上のpoetryを導入した前提でFormatterの導入方法を記します.(VSCode用)

black

  • install

    • poetry add black -D
    • poetry add flake8 -D
  • VSCodeの設定をします. ctrl + ,で設定画面を表示できるため以下のように設定します.以下の設定によってsaveするたびにコードをフォーマットしてくれます.

設定名 機能 設定値
python.linting.enabled Lint機能を有効にするかどうか true
python.linting.pylintEnabled Linterにpylintを使用するかどうか false
python.linting.flake8Enabled Linterにflake8を使用するかどうか true
python.linting.lintOnSave ファイル保存時にLintを実行するか true
python.formatting.provider Pythonコードの整形に何を使用するか black
editor.formatOnSave ファイル保存時に自動整形するかどうか true

isort

  • install

poetry add isort -D

  • 保存時に自動でimport文の順序を揃えてくれるようにvscodeの設定をします.

    • VSCode上でctrl + shift + p を打つことでコマンド画面を出します.
    • Preferences: Open Settings (JSON)と打ち,setting.jsonを表示します.
    • 以下を追記します.
    {
      "[python]":{
        "editor.codeActionsOnSave":{
           "source.organizeImports":true
        }
    }
    

参考リンク

20
12
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
20
12