Pythonチュートリアル、venv を作って pip install と2026年も教え続けますか?
「python -m venv .venv してから pip install」Pythonを始める人に、私たちは長らくこの手順を最初に教えてきました。チュートリアルの定番であり、疑う余地のない出発点です。
でも2026年のいま、それは本当にベストな「最初の一歩」でしょうか?
本トークの主張は「仮想環境はもう要らない」ではありません。仮想環境は今も必要です(なので仕組みの理解はもちろん取り上げます)。
問い直したいのは「どう作るか」です。
uvx / pipx run はツールをプロジェクトに入れずに実行し、PEP 723のinline script metadataは単体スクリプトを人力で仮想環境を作らずとも動かします。
また、uv tool install / pipx install で人力で仮想環境を作らずともCLIツールをマシンでグローバルに管理できます。
仮想環境を手で作って activate して install する手順を、ツールに任せられる場面が確実に増えています。
加えて、いま教えるなら触れておきたい論点も扱います。
uvのデメリットと感じているコーディングエージェントとの相性(uvはキャッシュに積極的すぎるためにエージェントからの書き込み権限が時に問題となる)、そして cooldown(新しすぎる版を避ける設定)や安全なインデックスへの切り替えといったサプライチェーン防御の観点です。
「uv は速い」で語られがちですが、速度だけでなく、「環境構築の教え方そのものが変わった」というより根本的なパラダイムシフトとして捉え直します。
簡単さから uv を軸にしつつ、他のツールがこの進化に果たした役割も踏まえ、意図を込めて道具を選ぶ視点を共有します。
Tell us about your own experience with this topic
Pythonの環境構築はここ3年ブログに多く書いてきたテーマです。venv/pip、uv、Hatch、PEP 723などについて、ブログに90本を超える記事を公開してきました。
「速いから」で終わらせず、なぜそう動くのか・どんな設計意図があるのかを、PEP や実装まで追って言語化することを大切にしています。
理解を確かめるために、小さな仮想環境管理ツールやPEP 723サポートツールを自作してきました。仕様を読むだけでなく手を動かして原理を確かめたことは、発表での解像度の高い説明につながると感じています。
内容としては3月のPythonAsiaでの発表をベースに、議論を呼ぶべく情報共有とせずに私のスタンスを明確に打ち出します。またPEP 723については2024年にPyCon JPで発表させていただきました
What discussions can you have with attendees through this talk?
議論を呼ぶべく、問いだけでなく私の意見を打ち出していきます。
いちばん投げかけたい問いは「いま入門者に教えるなら、最初の一歩を何にしますか?」です。
私は簡単さを最優先にuvなのですが、今も venv + pip install から始める方、すでに uv に切り替えた方、両方の判断軸と、切り替え後に何が楽になり何が変わったのかを聞いてみたいです。
またPython入門者には仮想環境を意識せず使いたいライブラリが使えるPEP 723やuvx/pipx runも早期に知って欲しいと考えています(書籍で採用して欲しい!)
しかしサプライチェーン攻撃の懸念があるのでcooldownや安全なインデックス指定もセットで伝えます。
uvは簡単で高速ですが、キャッシュへの書き込み権限の問題が生じるのでコーディングエージェントとはなじんでいないと感じます。なので私はコーディングエージェントには.venv/bin/pythonを操作させます
提示する問いやスタンスに対して、多くの方に自分だったらどうするか考えていただきたいですね
株式会社ユーザベースの機械学習エンジニア。Pythonを書いて最近はLLMと戯れている。
Pythonで作った小さなソフトウェアをいくつか公開している。代表作:https://github.com/ftnext/sphinx-new-tab-link
ブログを技術記事を中心に毎日書いて1200日経過 https://nikkie-ftnext.hatenablog.com/
https://x.com/ftnext
毎月のみんなのPython勉強会スタッフ。PyCon JP 2021座長