【Python入門】uvでパッケージ管理から仮想環境の構築まで管理する

  • 2026.01.28
       
【Python入門】uvでパッケージ管理から仮想環境の構築まで管理する

Pythonで開発をする際に重要なのが、パッケージの依存関係や仮想環境などを管理するためのツールの選定です。
Python向けの管理ツールにはいくつかの種類が存在しますが、その中でもおすすめなのが uv という管理ツールです。

今回は、uvを使用してパッケージ管理や仮想環境の構築などを行う方法について解説していきたいと思います。

uvとは?

uvは、Astral社が提供する Python向けパッケージマネージャーの1つです。
2024年の2月中旬に発表されたばかりの新しいパッケージ管理ツールで、同社が提供している Rye などと同様に Rustという言語で開発されています。

uvは従来のパッケージマネージャーに比べ、高速かつ信頼性が高いのが大きな特徴です。
パッケージの依存関係の解決が非常に強力であり、lockファイルが標準で生成されるため環境再現もしやすく、より効率的に開発を進めることができます。

また、パッケージ管理だけでなく、仮想環境を管理するための機能も兼ね備えているため、venvなどの仮想環境ツールを別途で用意する必要がありません。

pipとuvとの違いは?

パッケージ管理における効率性の高さや、1つのツールで開発に必要な環境を一通り揃えられる柔軟性の高さも魅力的なポイントの1つですが、uvの最大の特徴は圧倒的な処理速度の高さにあります。

uvの開発に使用されている Rust は高速処理を得意とするプログラミング言語で、uvもその恩恵を受けています。
同じくパッケージ管理ツールの1つであり、Pythonのインストール時に標準で付属されている pipと比べると、10〜100倍もの速度で動作すると言われているほどです。

開発の規模が大きくなるほど、管理するパッケージなどの量も比例して増える場合がほとんどのため、処理速度の高速化は大きなメリットとなります。

uvの使い方

それでは早速、uvの使い方について見ていきましょう。

uvのインストール手順

uvのインストール方法は主に、公式が提供するスタンドアロンインストーラーを使用する方法と、各OSで使用可能なパッケージマネージャーを利用する方法の2通りがあります。

スタンドアロンインストーラーを使用する場合は、それぞれ以下のコマンドを実行します。

Windowsの場合(PowerShell 5以前)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
MacOS, Linuxの場合
curl -LsSf <https://astral.sh/uv/install.sh> | sh

上記のコマンドは公式サイトに記載されているものですが、Windowsのコマンドは PowerShell 5 以前を想定したものとなっています。
PowerShell 7 以降の場合は以下が標準のコマンドとなります。

PowerShell
pwsh -c "irm https://astral.sh/uv/install.ps1 | iex"

パッケージマネージャーを使用する場合は、WinGetや Homebrew、pipなどでインストールが可能です。

WinGet
winget install --id=astral-sh.uv -e
HomeBrew
brew install uv
pip
pip install uv

インストールが完了したら、念の為、以下のコマンドで正常にインストールされているか確認しておきましょう。

Bash
uv --version
uv -V

以下のようにバージョン表示されれば、インストール成功です。

$ uv –version
uv 0.9.26 (Homebrew 2026-01-15)

uv initでプロジェクトディレクトリを作成する

新規にプロジェクトディレクトリを作成する場合は、以下のコマンドを使用しましょう。

Bash
uv init プロジェクト名

コマンドを実行すると、カレントディレクトリ下に指定したプロジェクト名のディレクトリが作成されます。

サンプルプロジェクトの作成
uv init sample-project
Initialized project `sample-project` at `/Users/User/Desktop/sample-project`

また、作成されたディレクトリ内には、自動でいくつかのデフォルトファイルが用意されています。

プロジェクト内で使用する Pythonのバージョンを指定したい場合は、以下のように、–python または -p オプションで指定可能です。

Bash
uv init --python 使用バージョン プロジェクト名

uv addでパッケージをインストールする

プロジェクトで使用するパッケージをインストールする際は、uv add コマンドを利用します。

Bash
uv add パッケージ名

このコマンドでパッケージを追加すると、pyproject.tomlファイルの更新と、uv.lockファイルの更新(未作成時はファイルを新規作成)が同時に実行されます。

これらのファイルは、プロジェクトの依存関係の管理に利用されるもので、uv add コマンドなどを実行した際に自動で内容が更新されます。

uv runでスクリプトを実行する

実装したスクリプトを実行したい場合は、uv run コマンドを使用します。

Bash
uv run ファイル名

試しに、プロジェクトの新規作成時にデフォルトで用意されている main.pyファイルを実行してみましょう。

$ uv run main.py
Hello from sample-project!

このように、コンソールに該当ファイルの実行結果が表示されます。

なお、この例でのサンプルファイルの中身は以下の通りです。

Python
def main():
    print("Hello from sample-project!")


if __name__ == "__main__":
    main()

main()ブロックに記述されている内容が実行されているのが分かりますね。

実際にプロジェクトを立ち上げてみる

基本的なコマンドを確認したところで、実際に新規プロジェクトを立ち上げる際の簡単な流れを確認してみましょう。

まずは、uv init コマンドでプロジェクトを作成します。
使用するPythonのバージョンを指定したい場合は 、–python または -p オプションを使用しましょう。

Bash
uv init -p 3.13 sample-project

作成が完了したら、cdコマンドでディレクトリ内に移動し、必要なパッケージをインストールします。
インストール時に使用するコマンドは、uv add コマンドです。

Bash
cd sample-project
uv add requests

環境構築とスクリプトの実装が一通り完了したら、実行したいファイルを uv run コマンドで動かしてみましょう。

Bash
uv run main.py

エラーが発生することなく、想定通りの結果が表示されれば、実装は成功です。

基本的な開発の流れは、以上となります。

uvを使用する際の注意点や便利な機能

uvを扱う際には、注意するべき点や覚えておくと便利な機能がいくつかあります。
それぞれ見ていきましょう。

uv venvやuv pip installは最新バージョンでは不要

uvには、仮想環境の構築に使用できる uv venvコマンドと、パッケージのインストールを行うことができる uv pip installコマンドが存在します。
これらのコマンドは、過去にはプロジェクトの作成時などに必要な手順の1つとされていましたが、現在では特定のケースを除いて使用する必要はないコマンドとなっています。

現在のuvでは、uv addコマンドでパッケージをインストールする際に、仮想環境が自動で構築される仕様となっています。
そのため、仮想環境を構築するために必要だった uv venvコマンドを使わずとも、必要な環境を構築することができます。

また、uv pip installコマンドはパッケージの追加はできるものの、uv addコマンドとは異なり、pyproject.tomlファイルと uv.lockファイルの更新を行いません。
プロジェクトを安定して運用するためには、依存関係の解決は重要な要素の1つとなるため、特別な理由がない限りは uv addコマンドを使ってパッケージをインストールすることをおすすめします。

uv exportで環境設定をファイルに出力する

Pythonでパッケージの依存関係を共有する方法として、requirements.txt というファイルを使う方法があります。

記載内容の厳密さとしては、requirements.txtファイルよりも uv.lockファイルの方が詳細に内容が記述されているため、uv を使って開発する際は基本的に uv.lockファイルを使用すれば問題ありません。
ところが、中にはデプロイ環境で uv が使えない場合や、他のサービス(CI ツールなど)が requirements.txtファイルしか受け付けない場合があります。

上記の問題を解決する際に役立つのが、uv export コマンドです。
このコマンドを使用することで、uv.lockファイルの内容を元に requirements.txtファイルを出力することができます。

Bash
uv export -o requirements.txt

使用していないキャッシュをクリアする

uvにはキャッシュ機構が存在し、ダウンロードしたパッケージやソースコードなどをキャッシュとして保管することで、依存関係の解決やインストールなどの処理を高速化させています。
そのため、キャッシュを定期的に整理することも重要です。

uvには、既存のキャッシュを削除するためのコマンドがいくつか用意されています。

キャッシュを全削除
uv cache clean
特定のパッケージのキャッシュを削除
uv cache clean パッケージ名
未使用のキャッシュを削除
uv cache prune

削除したい内容によって使い分けをするといいでしょう。

まとめ

いかがでしたか?今回は、Pythonで uvを使用する方法について解説しました。

パッケージマネージャーの選定基準はケースによって様々ですが、処理速度や安定性の高さは開発する上で非常に重要なポイントとなります。
まだ使ったことがなく、uvの使用感が気になるという方は、この機会にぜひ試してみてください。

Pythonの勉強方法は?

書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。

ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。

プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。

<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~

このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。

     

Otherカテゴリの最新記事