株式会社ブレインパッドで機械学習エンジニアをしている新卒のえーちゃんです。
この記事はBrainPad Advent Calender 2023 10日目の記事です。
はじめに
環境構築ってめんどくさいですよね。
はい、ということでテンプレ作りました。
完成品はこちらになります。
全体像の説明
DevContainerと呼ばれるVSCodeの機能をベースに
- poetry (ライブラリ管理)
- ruff (リンタ&フォーマッタ)
- pytest, pre-commit
などを導入した環境です。
テンプレを使うとこのような感じですぐに開発を始めることができます。
どんな人向け?
- 環境構築分からんデータサイエンティスト
- 爆速でPoCを開始したい機械学習エンジニア
何ができる?
- プロジェクトごとに環境を分けることができる
- メンバーと環境を共有することができる
- コードの品質を保つことができる
使い方
1. 環境の導入
git clone https://github.com/YutaEiki-BP/python-template.git [フォルダ名]
フォルダ名を適宜置き換えて上記のコマンドを実行すると、テンプレを含んだフォルダができます。
このままだとテンプレのgitが残っているので一旦以下のコマンドで削除します。
cd [フォルダ名]
rm -rf .git
gitを使いたい場合は上記のコマンドに続けて以下のコマンドを実行してください。
git init
2. 環境の起動
先ほど作成したフォルダをVSCodeで開きます。
すると画像のように「コンテナで再度開く」と表示されるのでクリックしてください。
機能の説明
各ツールの詳細な説明はいずれ別記事で書きたいと思います。
ここでは簡単な説明だけ行います。
Pythonライブラリの管理
Pythonライブラリの管理にはpoetryを使用しています。
ライブラリを追加したい場合はCmd + Shift + ` (Windowsの場合はCtrl + Shift + `)でターミナルを開き
poetry add [ライブラリ名]
とすることでライブラリを追加することができます。
コードの自動フォーマット
リンター&フォーマッターにはruffを使用しています。
ファイル保存時に自動でコード検査&フォーマットを走らせることでコードの品質を保ちます。
コミット時のチェック
コミットの際にはpre-commitによる自動チェックが行われます。
これによってリポジトリ全体の品質を保ちます。
- コードのチェック (ruff)
- 型のチェック (mypy)
などが行われますが、このほかにもチェックを追加することが可能です。
テスト
テスト用ツールとしてpytestを導入しています。
設定済みのためすぐにテストを開始することができます。
Git履歴の可視化
VSCodeの拡張機能のGitGraphを導入しています。
開発の際にはすごく便利です。
さいごに
今回はPython環境のテンプレを作った話でした。
短い経験ではありますが役に立ったプラクティスを盛り込んでますのでぜひ一度お試しください。
この記事では触れていませんが環境構築の思考プロセスなど追々話していければなと思います。
また、需要があればカスタマイズの方法なども今後記事化するつもりです。
テンプレの改善要求・提案等もお待ちしております。
お問い合わせについてはyuta.eiki@brainpad.co.jpまでお願いします。