Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UVの使い方紹介
Search
愛計
October 29, 2025
Programming
40
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
UVの使い方紹介
研究室のゼミでの進捗スライドから抜粋しました。
2025/6/10時点での内容となっております。
愛計
October 29, 2025
More Decks by 愛計
See All by 愛計
【制限時間5分】 スマホだけでゲームを作れるか
lovemeasure
0
23
Other Decks in Programming
See All in Programming
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.4k
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
170
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
150
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
150
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
270
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
160
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
120
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
790
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
2.8k
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.5k
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
190
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Paper Plane (Part 1)
katiecoart
PRO
1
9.9k
Optimizing for Happiness
mojombo
378
71k
Building AI with AI
inesmontani
PRO
1
1.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
A Tale of Four Properties
chriscoyier
163
24k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.6k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
57k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
380
Transcript
UVの使い方紹介 研究室のゼミでの進捗スライドから抜粋 X/Twitter:@lovemeasure9
uv Rust で書かれた、非常に高速な Python パッケージおよびプロジェクトマネージャー。 2024年2月15日に初めてリリース。発音は/juː viː/ Cargo for Python
を目指しているらしい uv公式ドキュメント - https://docs.astral.sh/uv/ 参考になった記事 - https://zenn.dev/tabayashi/articles/52389e0d6c353a - https://qiita.com/kissy24/items/0c091bb5f12d697131ae - https://kumaroot.readthedocs.io/ja/latest/python/python-uv.html - https://speakerdeck.com/mickey_kubo/pythonpatukeziguan-li-uv-wan-quan-ru -men
uv Anthropicで利用されているモダンなPython開発のベストプラクティス - https://zenn.dev/yareyare/articles/d67aa75b37537c という記事によると Anthropicの開発ガイドラインでは、 パッケージ管理 - `uv` のみを使用し、`pip`
は絶対に使わない ようにしているらしい ※AnthropicはClaude(大規模言語モデル)を開発した会社
なんか速そう……! > ⚡ 10-100x faster than pip. pipより10~100倍早いらしいです 画像の引用元:https://docs.astral.sh/uv/ uv
uvのインストール macOS/Linux - $ curl -LsSf https://astral.sh/uv/install.sh | sh Homebrew
- $ brew install uv Windows - $ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" https://docs.astral.sh/uv/getting-started/installation/
uvのバージョン確認 uvのインストールができたかの確認 $ uv --version - $ uv self version
- $ uv -V - でも可能 バージョンが出力される 僕の場合:uv 0.7.10 (Homebrew 2025-06-03)
uvでスクリプトを実行する #example.py print("Hello world") を用意する $ uv run example.py -
一般に$ uv run <script> - とすればよい
uvでPythonのバージョンを指定して実行する $ uv run example.py - の代わりに $ uv run
--python 3.12 example.py - とすれば良い 豆知識:uvはが対応しているのは、python3.8以降
サードパーティライブラリに依存している場合の実行 例:example.py from rich import print print("[bold magenta]Hello from rich![/bold
magenta] 🎉") 普通に実行すると(グローバルに入ってないなら)、ModuleNotFoundErrorが起きる 1. --withオプションをつける(少し面倒) 2. インラインメタデータを記載 - 手書き(面倒) - uv addをする - 最初にファイルを作る時点で、uv init –script example.py としておく
--withオプションをつける $ uv run --with rich example.py Hello from rich!
🎉 上記のような感じで実行できる(richな出力になっていると思います。) uvがライブラリを爆速でダウンロードするか、キャッシュから使ってくれる ライブラリ数が多かったら大変
インラインメタデータを記載 インラインメタデータを記載すると、uvがコードを読んでいい感じにライブラリを引っ張ってき てくれるようになる。 addコマンドを使うと、メタデータを記載してくれる。 $ uv add --script example.py rich
Updated `example.py`
インラインメタデータの追記 例:exsample.py # /// script # requires-python = ">=3.8" #
dependencies = [ # "rich", # ] # /// from rich import print print("[bold magenta]Hello from rich![/bold magenta] 🎉")
実行成功 $ uv run example.py Hello from rich! 🎉 となるはずです!!
インラインメタデータの削除 逆にライブラリを削除したいときには、 $ uv remove --script example.py rich とすれば良い。
まとめ:単体で動作するスクリプトを実行時のコマンド uv run --python <ver.> <script> - Pythonのバージョンを指定した場合、インラインメタデータよりオプションが優先され る。 uv
add --script <script> <pkg> uv remove --script <script> <pkg> addする際、バージョン指定子を使って、バージョンを指定できる。 例:uv add --script example.py rich>=14.0.0"
プロジェクトを作ろう 単体で動作するスクリプトは上記のように--scriptをつければ良い - 複数のファイルに依存したコードを書くときにはプロジェクトを作る必要がある $ uv init --app hello-world -
これでhello-worldというフォルダが作られる。 - オプション--appはデフォルトなので、省略しても良い - プロジェクトではなく、単体で動作するスクリプト場合もuv initを使用した方がインラ インメタデータが記載されるので少し楽 - $ uv init --script example.py
プロジェクトの構造 . ├── .git ├── .gitignore ├── .python-version (Pythonのバージョンを指定する) ├──
README.md (オプションで生成しないようにできる) ├── main.py (Pythonファイル) └── pyproject.toml (ライブラリが書かれている。)
init のオプションまとめ --bare - tomlファイルのみ作成される。一番シンプル --python <ver> | -p <ver>
- Pythonバージョンを指定する --no-readme - READMEを作成しない
プロジェクトでライブラリを追加削除する uv add <pkg> - 例:uv add rich uv remove
<pkg> - 例:uv remove rich
プロジェクトでライブラリを追加削除する プロジェクト内にいる必要がある uv add <pkg> - 例:uv add rich uv
remove <pkg> - 例:uv remove rich
実行する uv run main.py 結果 Hello from hello-world
3行でまとめる uv init <project> 初期化 uv add <pkg> ライブラリ追加 uv
run <file> 実行