{"provider_name":"Hatena Blog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fkagasu.hatenablog.com%2Fentry%2F2025%2F11%2F24%2F150335\" title=\"Python\u3067uv\u3092\u5229\u7528\u3059\u308b\u65b9\u6cd5 - \u5099\u5fd8\u9332\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","provider_url":"https://hatena.blog","published":"2025-11-24 15:03:35","image_url":"https://cdn-ak.f.st-hatena.com/images/fotolife/k/kagasu/20251124/20251124150315.png","blog_title":"\u5099\u5fd8\u9332","url":"https://kagasu.hatenablog.com/entry/2025/11/24/150335","title":"Python\u3067uv\u3092\u5229\u7528\u3059\u308b\u65b9\u6cd5","author_name":"kagasu","blog_url":"https://kagasu.hatenablog.com/","author_url":"https://blog.hatena.ne.jp/kagasu/","description":"\u2160. \u306f\u3058\u3081\u306b \u30bf\u30a4\u30c8\u30eb\u306e\u901a\u308a\u300cPython\u3067uv\u3092\u5229\u7528\u3059\u308b\u65b9\u6cd5\u300d\u3067\u3059\u3002 \u2161. \u624b\u9806 1. \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u521d\u671f\u5316\u3059\u308b uv init my-perfect-project 2. \u5229\u7528\u3059\u308bPython\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u6307\u5b9a\u3059\u308b pyproject.toml [project] requires-python = \"==3.12.1\"uv python pin 3.12.1 3. \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b uv add colored 4. \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u56fa\u5b9a\u3059\u308b uv lock 5. \u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304f from colored import Fore, Back, Style \u2026","categories":["Python"],"width":"100%","height":"190","type":"rich","version":"1.0"}