nikkie-ftnextの日記

イベントレポートや読書メモを発信

Pythonの仮想環境、最近は .venv という名前で作っています

はじめに

バーンブレイバーン、アイうたじゃなくてボーボボ!! nikkieです

Pythonの仮想環境、--upgrade-depsオプションを激推しするくらいヘビーユースしています。

私事で恐縮ですが、私nikkieは今般、仮想環境のお相手(=実体のディレクトリ)の名前を venv から .venv に変えたことを、読者の皆さまにご報告いたします。
※本記事は小ネタです

目次

わたしと仮想環境

ご報告のサマリ

  • これまで
    • python -m venv venv --upgrade-deps
  • これから
    • python -m venv .venv --upgrade-deps

これはvenvモジュールの__main__.pyを実行しに行きます1
https://github.com/python/cpython/blob/v3.12.2/Lib/venv/__main__.py
このスクリプトは引数を受け取ります(venv.venvの部分)。
引数には仮想環境とするディレクトリのパスを(複数)指定できます。

このたび、仮想環境のディレクトリ名を.venvに変えました。

理由:公式ドキュメントに準拠したくて

ふとPythonチュートリアルを見た時に、.venvという名前で作っていることに気づいたんですよ。

12.2. 仮想環境の作成より

仮想環境の一般的なディレクトリの場所は .venv です。

この名前は、通常はシェルで隠されているため、ディレクトリが存在する理由を説明する名前を付けても、邪魔にはなりません。
また、一部のツールでサポートされている .env 環境変数定義ファイルによるクラッシュも防止します。

標準ライブラリのvenvのドキュメントでも.venvという名前です。

よく使われるターゲットディレクトリの名前は .venv です(仮想環境の作成より)

私が見た範囲の公式ドキュメントでは、どうやら現在は.venvという名前みたいです。

.venvに変えて嬉しい小さな点(macOS

macOSで開発している中で、source veくらいでタブキーで補完しようとすると、2つ候補が出るようになりました。

  • venv
  • venc_data_dump

後者はffmpegをインストールしたからと思われます2

仮想環境のディレクトリの名前を.venvとすると、source .vでタブ補完ができてサクサクです

日本語のPython入門ドキュメントでは名はenv

「(ここに大きな主語を置いて)公式ドキュメントに合わせた名前の.venvにするべき」なんてことは一切考えていません。
取るに足らない好みの問題だと思います。

私がPythonに入門したタイミングでは、python -m venv venvを教わった気がします。
そのまま長らく使い続けてきました。
結構長いことpython -m venv venvで1つの呪文のように思っていて、2つ目のvenvが仮想環境のディレクトリ名だと気づくのに時間がかかりました。

日本語で読める入門ドキュメントでは、現在、仮想環境のディレクトリの名前は env としているようです。

python -m venv envならenvというディレクトリを作っているんだなとわかりやすいので、これはこれでよいと思います👍

終わりに

仮想環境のディレクトリの名前について、私の好みをお伝えします

  • .venvに行き着きました。公式ドキュメントとおそろです
  • venvでもできる仮想環境の動きに違いは全くありませんが、python -m venv venvが1つの変えてはいけない呪文のように思ってしまっていたので、私の中ではポイント低いです
  • 日本語のドキュメントでは、現在はenvのようです。これはこれでよいと思います