11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BrainPadAdvent Calendar 2023

Day 10

Python環境のテンプレを作った話

Posted at

株式会社ブレインパッドで機械学習エンジニアをしている新卒のえーちゃんです。

この記事はBrainPad Advent Calender 2023 10日目の記事です。

はじめに

環境構築ってめんどくさいですよね。
はい、ということでテンプレ作りました。
完成品はこちらになります。

全体像の説明

DevContainerと呼ばれるVSCodeの機能をベースに

  • poetry (ライブラリ管理)
  • ruff (リンタ&フォーマッタ)
  • pytest, pre-commit

などを導入した環境です。

テンプレを使うとこのような感じですぐに開発を始めることができます。
image.png

どんな人向け?

  • 環境構築分からんデータサイエンティスト
  • 爆速でPoCを開始したい機械学習エンジニア

何ができる?

  • プロジェクトごとに環境を分けることができる
  • メンバーと環境を共有することができる
  • コードの品質を保つことができる

使い方

1. 環境の導入

git clone https://github.com/YutaEiki-BP/python-template.git [フォルダ名]

フォルダ名を適宜置き換えて上記のコマンドを実行すると、テンプレを含んだフォルダができます。
このままだとテンプレのgitが残っているので一旦以下のコマンドで削除します。

cd [フォルダ名]
rm -rf .git

gitを使いたい場合は上記のコマンドに続けて以下のコマンドを実行してください。

git init

2. 環境の起動

先ほど作成したフォルダをVSCodeで開きます。
すると画像のように「コンテナで再度開く」と表示されるのでクリックしてください。
image.png

しばらく待って左下が開発コンテナーとなったら起動成功です!
image.png

機能の説明

各ツールの詳細な説明はいずれ別記事で書きたいと思います。
ここでは簡単な説明だけ行います。

Pythonライブラリの管理

Pythonライブラリの管理にはpoetryを使用しています。
ライブラリを追加したい場合はCmd + Shift + ` (Windowsの場合はCtrl + Shift + `)でターミナルを開き

poetry add [ライブラリ名]

とすることでライブラリを追加することができます。

コードの自動フォーマット

リンター&フォーマッターにはruffを使用しています。
ファイル保存時に自動でコード検査&フォーマットを走らせることでコードの品質を保ちます。

コミット時のチェック

コミットの際にはpre-commitによる自動チェックが行われます。
これによってリポジトリ全体の品質を保ちます。

  • コードのチェック (ruff)
  • 型のチェック (mypy)

などが行われますが、このほかにもチェックを追加することが可能です。

テスト

テスト用ツールとしてpytestを導入しています。
設定済みのためすぐにテストを開始することができます。
image.png

Git履歴の可視化

VSCodeの拡張機能のGitGraphを導入しています。
開発の際にはすごく便利です。
image.png

さいごに

今回はPython環境のテンプレを作った話でした。
短い経験ではありますが役に立ったプラクティスを盛り込んでますのでぜひ一度お試しください。
この記事では触れていませんが環境構築の思考プロセスなど追々話していければなと思います。
また、需要があればカスタマイズの方法なども今後記事化するつもりです。

テンプレの改善要求・提案等もお待ちしております。

お問い合わせについてはyuta.eiki@brainpad.co.jpまでお願いします。

11
5
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
11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?