mise + uv + ruff + task + mypy で Python 環境を構築する
以下のツールを組み合わせて Python 環境を構築する為の準備手順をメモしておきます。
ツール | 対象 | 概要 |
---|---|---|
mise | なんでも | 各種ツールのバージョンマネージャ |
Task | なんでも | タスクランナー |
uv | Python | ライブラリを管理するパッケージマネージャ |
Ruff | Python | 静的コード解析ツール |
mypy | Python | 型チェックツール |
検証環境¶
対象 | バージョン |
---|---|
Ubuntu | 24.04.2LTS |
結論¶
mise のインストール¶
設定後はログアウト・ログインし直す等で設定変更を反映しておきます。
1 2 3 4 5 6 7 |
|
Python + Task + uv + ruff のインストール¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
|
mise のインストール¶
apt で mise をインストールします。
sudo apt update -y && sudo apt install -y gpg sudo wget curl
sudo install -dm 755 /etc/apt/keyrings
wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg 1> /dev/null
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list
sudo apt update
sudo apt install -y mise
インストール後は mise を activate する為の設定を実施します。 設定後はログアウト・ログインし直す等で設定変更を反映しておきます。
echo 'eval "$(/usr/bin/mise activate bash)"' >> ~/.bashrc
Python + Task + uv + Ruff のインストール¶
Python、Task、uv、Ruff、各々を mise でインストールします。
mise install python@latest
mise use -g python@latest
mise install task@latest
mise use -g task@latest
mise install uv@latest
mise use -g uv@latest
mise install ruff@latest
mise use -g ruff@latest
mypy のインストール¶
現時点で mypy は mise のプラグインとして提供されていない為、uv tool
でインストールします。
uv tool install mypy
Python の仮想環境を作成するスクリプト¶
Python のプロジェクトごとに仮想環境を作成する手間を省く為にスクリプトを用意しておきます。 /usr/local/bin/venv
を以下の内容で作成し、実行権限を付与しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|
このスクリプトを実行後、task
を実行すると以下のように登録されたタスクの一覧が表示されます。
# task
task: [default] task --list
task: Available tasks for this project:
* build: Build (aliases: b)
* format: Format the source code (aliases: f)
* lint: Static analysis (aliases: l)
* test: Test (aliases: t)
タスクには alias を設定してありますので、例えばソースコードのフォーマットを実施する場合は task format
または task f
と実行します。