今回の記事では新しいPythonのパッケージ管理ツールuvを紹介します。
さ、プログラムを楽しもうー!

前書き
いつも私の技術ブログとYouTubeチャンネルをご覧いただき、心より感謝申し上げます。また、いまFullさん(full@桜 八重 (@fulhause) / X)と共に毎週水曜日の夜にお届けしている「高橋クリス」ラジオ番組を運営しています。
技術は独り占めせず、届けるもの
私たちは工場の生産技術や制御に関する技術情報を、ブログや動画などで無料公開しています。「知識は誰でもアクセスできるべき」という信念のもと、現場で役立つ具体的なノウハウやトラブル事例などを発信してきました。すべて無料で続けているのは、「知らなかったせいで困る人」を少しでも減らしたいからです。
また、もしあなたの現場で…
- 「このPLCとデバイスの組み合わせ、ちゃんと動くのかな?」
- 「EtherCAT通信でうまくいかない部分を検証してほしい」
- 「新しいリモートI/Oを試したいけど社内に検証環境がない」
など、困っている構成や試してみたいアイデアがあれば、ぜひお知らせください。機器の貸出や構成の共有が可能であれば、検証し、記事や動画で発信します(ご希望に応じて匿名対応も可能です)。
支援のかたち
現在、私達の活動はほぼ無償で続けており、記事や動画の制作には、時間と検証環境の整備が必要です。この活動を継続的にコンテンツを提供するためには、皆様の温かいご支援が大変重要です。
メンバーシップ(ラジオの応援)
Fullさんとのラジオをより充実させるための支援プランです。
https://note.com/fulhause/membership/join
Amazonギフトリスト
コンテンツ制作に必要な機材・書籍をリストにしています。
https://www.amazon.co.jp/hz/wishlist/ls/H7W3RRD7C5QG?ref_=wl_share
Patreon(ブログ・動画活動への応援)
月額での小さなご支援が、記事の執筆・検証環境の充実につながります。
https://www.patreon.com/user?u=84249391
Paypal
小さな支援が大きな力になります。
https://paypal.me/soup01threes?country.x=JP&locale.x=ja_JP
知ってたら助かること、届けたいだけです
あなたの応援が、知識の共有をもっと自由で持続可能なものにしてくれます。これからもどうぞよろしくお願いします。
soup01threes*gmail.com
技術はひとりじゃもったいない。
uv?
UVツールはPython用の高速パッケージおよびプロジェクト管理ツールです。Rustで記述され、ワークフローの効率化を目的として設計されています。高速な依存関係インストールを提供し、様々な機能を単一のツールに統合します。
uvを使えば、複数のPythonバージョンのインストールと管理、仮想環境の作成、プロジェクト依存関係の効率的な処理、動作環境の再現、さらにはプロジェクトのビルドと公開まで行えます。これらの機能により、uvはPythonプロジェクト管理のためのオールインワンツールとなります。

uvインストール
こちらのコマンドでuvをインストールしてください。
| curl -LsSf https://astral.sh/uv/install.sh | sh |
こちらは実行結果です。

もしuvコマンド見つからない場合
もし下図のようにuvが見つからない場合の解決方法を説明します。

下図のコマンドを実行し、OSを再起動すればOKです。
| pi@raspberrypi:~/Desktop $ export PATH=$HOME/.local/bin:$PATH pi@raspberrypi:~/Desktop $ echo ‘export PATH=$HOME/.local/bin:$PATH’ >> ~/.bashrc pi@raspberrypi:~/Desktop $ source ~/.bashrc pi@raspberrypi:~/Desktop $ reboot now |
検証
次はuvコマンドを使用し仮想環境を作成します。
| pi@raspberrypi:~/Desktop $ mkdir pj1 pj2 pj3 pi@raspberrypi:~/Desktop $ pi@raspberrypi:~/Desktop $ cd pj1 pi@raspberrypi:~/Desktop/pj1 $ uv init Initialized project `pj1` |
検証するためにuvの仮想環境ではない本環境ではpahoパッケージがありません。

また、先程uv initで初期化したFolderの中にすでに複数のFileが存在しています。

| ファイル名 | 役割 | 説明 |
| main.py | コード本体 | プログラムの入り口 |
| pyproject.toml | プロジェクト設定 | 名前・依存関係・Pythonバージョンなど |
| README.md | 説明書 | GitHubなどで表示される概要 |
| uv.lock | ロックファイル | インストールしたパッケージのバージョンを固定 |
uvの仮想環境でPythonを実行したい場合は下記のコマンドを実行しましょう。
| uv run python main.py |
Done!

次は下記のコマンドで必要なパッケージをインストールしましょう。
| pi@raspberrypi:~/Desktop/pj1 $ uv add paho-mqtt Using CPython 3.9.18 interpreter at: /usr/local/bin/python3.9 Creating virtual environment at: .venv Resolved 2 packages in 892ms Prepared 1 package in 403ms Installed 1 package in 8ms + paho-mqtt==2.1.0 |
そしてFolder内のmain.pyにpahoパッケージをImportするようにします。

Done!
