Pythonで仮想環境を作るときってどこに作っていますか? ディレクトリ名をどうするか悩んでいませんか? これを解決してくれるかもしれないPEPが提出されました。どんなものか、ちょっと見てみましょう。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
2026年4月15日に「PEP 832 - Virtual environment discovery」が公開された。タイトルからも分かる通り、これは仮想環境をデフォルトでどこに配置するか、そのデフォルトの位置を決めることで、各種のツールが仮想環境を見つけやすくしようというものだ。Python 3.15でのサポートを目標としている。4月17日時点ではStatusはDraftとなっている。
Pythonで複数ファイルから構成されるプロジェクトに取り組もうという場合、現在ではプロジェクトディレクトリに仮想環境を構築するか、既存の仮想環境をプロジェクトで使えるように構成するのが一般的である。そして、プロジェクトで使用するツール類は仮想環境がどこにあるかを発見し、それを使えなければならない。
慣習的に、そうした仮想環境をローカルに配置する場合には、「プロジェクトのルートに.venvという名前のディレクトリに配置する」という「慣習」はある。が、これはあくまでも慣習であって、それに従う必要はない。そのため、ツールが仮想環境を発見するための機構がない。このPEPはこの問題を解決し、各種のツールが仮想環境を特定し、使用しやすくなるようにするためのものだ。
どうも。HPかわさきです。
仮想環境を作るときって、確かにディレクトリ名をどうしようかなぁと悩むことがあります。最近ではツール任せで「.venv」に決め打ちですが、自分で「python3 -m venv ……」とやっていたころは「venv」にするか「.venv」にするか、どっちがいいかなぁと悩んだものです。「こうしなよ」と決められちゃって、ツールもそれをサポートするようなら喜んでそれに従っちゃうかもしれませんね。
仮想環境には3つの側面があると、PEPでは述べられている。
こうした側面をまとめて取り扱えるように、PEPでは次のような提案がなされている。
ディレクトリにしてもファイルにしても、名前を「.venv」に統一することで、ツールからは「.venvを探せばよい」と処理が一本化されるのがメリットといえるでしょう。
また、これをサポートするために、venvモジュールへの変更も提案されている。
PEP 832についての議論は「PEP 832: virtual environment discovery」で行われている。方向性への反対意見はなく、おおむね好意的な雰囲気だが、幾つかの改善点が指摘されている。そうした指摘としては「プロジェクトと言っているが、その定義がない」や「『tools MUST……』のような書き方よりも『行儀のよいツールは……』のような表現の方がよい」、この表現に関連する「このPEPはパッケージング相互運用仕様のように読めてしまうが、コアなPEPが人々の使い方についてそうした主張をできるとは思わない」などがある。
このPEPでは、各種ツールのメンテナー何人かにも話を聞いていて、現在のところは支持が優勢な状況だ。
ただし、話を聞いた人数はかなり少なめです。また、uvのメンテナーであるZanie Blue氏がlukewarm(消極的支持)となっているのも気になるところ。今後、聞き取りの数が増えれば、コミュニティーでの支持/不支持もハッキリと見えてくるかもしれません。
Python 3.15のβ1が登場する直前でのPEPの提出ということもあり、これが承認されることはなかなか難しそうだが、このPEPが承認されることがあれば、「Pythonの仮想環境運用に関するベストプラクティスが公式に定められた」ということになり、ツールの開発者や仮想環境の使用者にとっては大きなメリットとなるだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.