Python: venv - ikymrkw/pydepot GitHub Wiki

Python の仮想的な実行環境を作るもの。すごく簡単に言うと、環境変数(主に PATH)を変えることで実行される python の executable やそれに伴うライブラリ群を特定のディレクトリ以下に限定する。これを統合的に、元に戻す手段も含めて提供する。Executable を変えるので、python のバージョンを変えることすらできる。

歴史的には virtualenv やら pyenv やらあったが、 Python 3.x から本家のライブラリとして統合されたらしい。なので、特に何もインストールしなくても使える venv を使っておけば OK。

使い方

python -m venv 環境名 で新しい環境を作る。環境名はパス(通常は相対パス)なので、たとえば abc とすればカレントに abc というディレクトリが作られる。そこが新しい仮想環境のファイルが格納される場所になる。以下環境名は abc とする。(Windows インストーラで Python をインストールした場合は python の代わりに py のほうが良いだろう。)

source abc/bin/activate (Unix系) か abc\Scripts\activate (Windows系) で仮想環境に入る。プロンプトの先頭に (abc) のように仮想環境名が付くようになる。

deactivate で仮想環境から出る。

仮想環境内で pip install などを実行すると、本来の Python 環境に依存せずに仮想環境内にだけライブラリをインストールできる。

Python のバージョン

仮想環境内で使われる Python のバージョンは、python -m venv <環境ディレクトリ> を実行した python のバージョンになる。

後からバージョンだけを変えることはできないが、環境を activate していない状態で python -m venv <環境ディレクトリ> --clear を実行すればこのとき実行した新しい python のバージョンで作り直すことができる(インストール済みのパッケージなどは無効になるので、入れ直す必要がある)。

Windows の場合 py -3.10 とすれば 3.10 系の Python を実行できる(別途インストールが必要)。

Windows での細かい話

activate.bat を実行すると別のシェルが起動して終了してしまうことがあるようだ。 activate だけのほうがいいらしい(詳細・原因は不明)。

DOSプロンプトではなく PowerShell を使うこともでき、その場合は abc\Scripts\Activate.ps1 を実行する(.ps1 はなくても/ないほうがいいかも)。ただし実行権限がなくて拒否されることがあるので、初回のみ Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force を先に実行する必要があるらしい。

⚠️ **GitHub.com Fallback** ⚠️