こんにちは、Python大好きエンジニアのたなべです!
この記事では、Pythonの開発環境を最新かつ効率的なものにするために、「uv」と「ruff」というツールを使った環境構築方法を紹介します。
Pythonを取り巻く環境は日々進化しています。pipやpoetry、ryeなど、さまざまなパッケージ管理ツールが登場してきましたが、今回紹介する「uv」と「ruff」は、その進化の最前線にいるツールです。
この記事は、Pythonを学び始めた方から、すでにPythonに慣れ親しんでいるエンジニアの方まで、幅広い読者を対象としています。
新しい技術に触れることで、より楽しくて効率的なPython開発環境を体験してみましょう!
ちなみに、YouTubeでも紹介していますので、「動画のほうがいいよ」という方はぜひ↓からご覧ください。
uvは、Rustで書かれた高速なPythonパッケージ管理・プロジェクト管理ツールです。
主な特徴は以下の通りです。
uvの登場により、pipやvirtualenv、poetry、ryeなどの既存ツールの機能を、より高速かつ効率的に利用できるようになりました。
ruffも同じくRustで書かれた高速なPythonコードリンター・フォーマッターです。
特徴としては以下の通りです。
ruffの「超高速」な処理は、特に大規模なプロジェクトでコードの品質を維持する際に大きな助けとなります。
uvとruffをインストールする前に、現在の開発環境を確認しておきましょう。
この記事では、WindowsとMacの両方の環境でのセットアップ方法を紹介します。
Windowsユーザーの方で、WSL2 (Windows Subsystem for Linux 2) を使用していない場合は、WSL2の導入を検討することをおすすめします。
WSL2を使うことで、LinuxベースのPython開発環境をWindows上で快適に利用できます。
まずは、現在のPythonバージョンを確認しておきましょう。
ターミナルで以下のコマンドを実行します。
この記事の作成時点では、Python 3.12.6が最新のメジャーバージョンです。
ただし、Pythonは毎年10月に新しいバージョンがリリースされるので、最新バージョンはPythonの公式サイトで確認することをおすすめします。
WSL2を使用している場合
PowerShellの場合
ruffのインストール
Macでのインストールも非常に簡単です。
インストール後、 not on yout PATH
のように警告が出たら、以下のコマンドでパスを通します。
インストールが完了したら、以下のコマンドでバージョンを確認し、正しくインストールされたことを確認しましょう!
まずは、uvの基本的な使い方を見ていきます。
これにより、README.md
、hello.py
、pyproject.toml
というファイルが作成されます。
これにより、.python-version
ファイルが生成され、プロジェクトで使用するPythonのバージョンが指定されます。
先ほどの uv tool install
とは違い、Pythonのuvプロジェクトに依存関係として外部パッケージを追加する場合は uv add
を使います。
uvを使うことで、プロジェクトごとに独立した環境を簡単に作成し、管理することができます。
また、uv sync
コマンドを使えば、他の人のプロジェクトの依存関係を簡単に自分の環境に再現することも可能です。( pip install -r requirements.txt
のようなもの)
続いて、ruffを使ってコードをきれいにする方法を見ていきましょう。
例として、以下のようなコードをhello.py
に書いてみましょう。
このコードに対してuv run ruff check hello.py
を実行すると、importの問題と未使用のモジュールについての警告が表示されます。
--fix
オプションを使用すると、これらの問題が自動的に修正されることがわかります。
FastAPIを使って簡単なWebアプリケーションを作成してみましょう。
ブラウザでhttp://localhost:8000
にアクセスすると、JSON形式で"Hello World"が表示されます。
次に、Pygameを使って簡単なウィンドウを作成してみましょう。
これにより、空の水色の画面に白い長方形が表示され、空っぽい画面となります。
最後に、Visual Studio Codeでruffを使いやすくするための設定を行いましょう。
settings.json
に以下の設定を追加これにより、ファイルを保存するたびにruffが自動的にコードをチェックし、問題があれば指摘してくれます。
uvとruffを使うことで、Pythonの開発環境がより高速かつ効率的になります。
uvはパッケージ管理とプロジェクト管理を、ruffはコードの品質管理を担当し、両者を組み合わせることで開発者体験が大幅に向上します。
特に注目すべき点は、これらのツールの「超高速」な処理速度です。
大規模なプロジェクトや複雑な依存関係を持つプロジェクトでも、ストレスなく開発を進められるようになります。
ただし、これらのツールはまだ発展途上であり、実際のプロダクション環境での使用には慎重な検討が必要かもしれません。
一方で、個人プロジェクトや新規プロジェクトでの採用は、非常に有益な経験になるでしょう。
Pythonの開発環境は日々進化しています。
新しい技術に触れ、自分の開発スタイルに合った最適な環境を見つけていくことが、より楽しくて効率的なプログラミング体験につながります。
ぜひuvとruffを試してみて、あなたのPython開発をより快適なものにしてください!