public_notes/20240121125457 venv.md
2024-02-12 23:19:59 +09:00

33 lines
3 KiB
Markdown
Executable file

# 20240121125457 venv
#python #venv
pythonの仮想環境。プロジェクトごとにpythonやライブラリのバージョンを固定できる。
[Conda と venv: Python環境構築ガイド - python.jp](https://www.python.jp/install/anaconda/conda_and_venv.html)
> 一般のPythonでも同じように複数の環境を作成して切り替えながら利用できるようになっており、[標準モジュールのvenv](https://docs.python.org/ja/3/tutorial/venv.html) が利用されます。
[12. 仮想環境とパッケージ — Python 3.12.1 ドキュメント](https://docs.python.org/ja/3/tutorial/venv.html)
> この問題の解決策は [仮想環境](https://docs.python.org/ja/3/glossary.html#term-virtual-environment) を作ることです。仮想環境とは、特定のバージョンの Python と幾つかの追加パッケージを含んだ Python インストールを構成するディレクトリです。
>
> 別のアプリケーションはそれぞれ別の仮想環境を使うことができます。先の例にあった要求の衝突を解決する場合、アプリケーションAが固有の仮想環境を持ってそこにライブラリのバージョン 1.0 をインストールし、アプリケーションBが持つ別の仮想環境にライブラリのバージョン 2.0 をインストールすることができます。そしてアプリケーションBがライブラリのバージョンを 3.0 に更新することを要求する場合も、アプリケーションAに影響しません。
>
> 仮想環境を作るには、仮想環境を置くディレクトリを決めて、 そのディレクトリのパスを指定して、 [`venv`](https://docs.python.org/ja/3/library/venv.html#module-venv "venv: Creation of virtual environments.") をスクリプトとして実行します:
>
> `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が選ばれた環境が起動する。