52
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python仮想環境ツール多すぎ! 一番ベーシックな「venv」から再入門しよう

Last updated at Posted at 2025-03-31

現代のPython開発環境はpyenv + Poetry(もしくは最近ならuv)を使って管理することが多いと思います。

名前が似ていてややこしいvenvは、これらと違ってPythonに標準搭載されているベーシックな仮想環境ツールです。色々ありますが、まずはこいつを改めて学びましょう。

venvとは?

こういう、みんなが使う開発ツールは巷にユーザー記事が溢れていますが、こういうものほど最初は公式ドキュメントを読んでみましょう。

  • venvとは:Pythonのモジュールの一つ
  • 軽量な稼働環境の作成を行う。ようは、色んなバージョンのPythonを同じPCの中で混在させて、プロジェクトによって使い分けられる
  • インストール済みのPython(ベースPython)の上に仮想環境が作成される
  • 仮想環境の中でpip installを行うと、仮想環境内にパッケージが追加される

しかしvenvは公式ページが結構分かりづらいです。公式で詰まったら、ユーザー記事を読むのが良いですね。

venvはPythonの中に内包されているモジュールで、パッケージ(pip installしてくるもの)をプロジェクトによって使い分けるために使います。

逆に、Python自体のバージョン管理はできません。

基本的な利用方法

インストールは不要。最近のPythonには標準ライブラリとして同梱されている

venvを使いたいプロジェクトディレクトリに移動する

cd ~/sample-pj

環境を作成する

python -m venv 環境名

環境名は venv と名づける人が多いようです。

ちなみに -m コマンドはPythonのモジュールを呼び出すときに使うオプションです。みんな大好き pip も、いつもは省略形で使われますが、紐づくPythonを正しく指定したいときなどは省略せず python -m pip install ... のように実行することができます。

venvは、pipのようにスタンドアロンのCLIツールとしてはインストールされないため、省略形で実行することはできません。

仮想環境を有効化する

source 環境名/bin/activate

sourceコマンドって分かりづらいですよね。引数に与えたシェルスクリプトを実行するためのコマンドです。

ただシェルスクリプトを実行するだけなら、sourceコマンドなしでも直接起動できるのですが、実行元ターミナルと別に子シェルが作られてしまいます。そのため、シェルスクリプトの目的が「現在のシェルの環境変数の設定」の場合、source経由で実行しないと目的を達成できません。

よくzshのターミナルに、変更したばかりの個人設定を反映させるときに source ~/.zshrc コマンドを使いますね。あのファイルはまさにシェルスクリプトでしたね。かつ、内容は環境変数を設定するコマンドが中心でした。

つまり、上記のactivateというのはシェルスクリプトです。実行すると、起動中のシェルの環境変数を書き換えて、Pythonのインタープリタのパスを仮想環境のものに変更してくれます。

うまくいくと、ターミナルのプロンプト文字(zshなら % )にvenvの環境名が表示されます。

仮想環境から抜ける

deactivate

これはactivate実行時に使えるようになるコマンドです。

おわりに

このように、venv単体ではPython自体のバージョン管理はもちろん、パッケージのバージョン管理機能もありません。プロジェクトごとにパッケージを分けられるという原始的な機能だけです。

基礎知識としてこれを学んだうえで、実務ではpyenvやPoetry、uvなどを使いこなしましょう。この後、別記事に書こうと思います。

おまけ

直接関係ないですが、私はMacのターミナルをPureというやつにカスタマイズするのが好きです。

52
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?