20240121125457 venv

pythonvenv

pythonの仮想環境。プロジェクトごとにライブラリのバージョンを固定できる。pythonのバージョンは固定できないので注意。 cf. venv pyenv virtualenv などの関係

Conda と venv: Python環境構築ガイド - python.jp

一般のPythonでも同じように複数の環境を作成して切り替えながら利用できるようになっており、標準モジュールのvenv が利用されます。

12. 仮想環境とパッケージ — Python 3.12.1 ドキュメント

この問題の解決策は 仮想環境 を作ることです。仮想環境とは、特定のバージョンの Python と幾つかの追加パッケージを含んだ Python インストールを構成するディレクトリです。

別のアプリケーションはそれぞれ別の仮想環境を使うことができます。先の例にあった要求の衝突を解決する場合、アプリケーションAが固有の仮想環境を持ってそこにライブラリのバージョン 1.0 をインストールし、アプリケーションBが持つ別の仮想環境にライブラリのバージョン 2.0 をインストールすることができます。そしてアプリケーションBがライブラリのバージョンを 3.0 に更新することを要求する場合も、アプリケーションAに影響しません。

仮想環境を作るには、仮想環境を置くディレクトリを決めて、 そのディレクトリのパスを指定して、 venv をスクリプトとして実行します:

python -m venv tutorial-env

これは tutorial-env ディレクトリがなければ作成して、その中に Python インタプリタ、その他関連するファイルのコピーを含むサブディレクトリを作ります。 Windows の場合: tutorial-env\Scripts\activate

Unix や Mac OS の場合:

source tutorial-env/bin/activate

(このスクリプトは bash shell で書かれています。 csh や fish を利用している場合、代わりに利用できる activate.csh と activate.fish スクリプトがあります。)

仮想環境を有効化すると、シェルのプロンプトに利用中の仮想環境が表示されるようになり、python を実行するとその仮想環境の Python を実行するようになります:

この手順、面倒だなと思っていたら、vscodeでは、作成したディレクトリを開き、コマンドPython: Create Environmentで venvを作成すると自動で認識される。 .venvという名前になる。これがデファクトスタンダードのようだ。作成後、 Python: Create Terminal コマンドを実行すれば、自動で.venvが選ばれた環境が起動する。