Python Venv メモ (Windows上)
Venvとは
・pip (Pythonのパッケージ・ライブラリ管理システム)をプロジェクトごとに仮想環境として独立して管理できる
・メリットとして依存性の解決がしやすくなる
・venvは「virtualenv」がPython 3.3より標準機能となったもの
・別途ソフトウェアをインストールせずに使用できる
ドキュメント
venv --- 仮想環境の作成 — Pythonドキュメント
環境
Windows11, PowerShell上で実行
Python 3.11.9
※Linux/WSLでは打ち込むコマンドが異なるため注意!
仮想環境作成
仮想環境にしたいディレクトリ(フォルダ)へ移動して仮想環境を作成する
例
ディレクトリパス: C:\Users\user\desktop\test
venv名: test_venv
> cd C:\Users\user\desktop\test
C:\Users\user\desktop\test> python -m venv test_venv
コマンドの実行後、ディレクトリtest_venvが生成されることを確認
(以下より..で表示を一部省略)
..esktop\test> ls
test_venv
ディレクトリtest_venv内には以下が含まれる
..esktop\test> cd test_venv
..esktop\test\test_venv> ls
Include
Lib
Scripts
pyvenv.cfg
仮想環境へ入る
作成しただけだと仮想環境へは入れていない
以下のコマンドで作成した仮想環境へ入る
..esktop\test\test_venv> cd ..
..esktop\test> test_venv\Scripts\Activate.ps1
(test_venv)..esktop\test>
初回実行時のエラー
Windows スタートメニューで「PowerShell」と入力
一覧から「Windows PowerShell」を右クリックして「管理者として実行」を選択
以下を実行して現在のユーザーのための実行ポリシーをRemoteSignedに設定
> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
RemoteSigned(ローカルで作成されたスクリプトは許可、リモートで作成されたスクリプトは信頼された発行者によって署名されている必要がある)
実行ポリシーが変更されているか確認
> Get-ExecutionPolicy -Scope CurrentUser
RemoteSigned
仮想環境から抜ける
仮想環境から抜ける場合は以下のコマンドを実行する。
(test_venv)..esktop\test> deactivate
..esktop\test>
仮想環境内でパッケージをインストールする
仮想環境へ入る
..esktop\test> source test_venv\Scripts\Activate.ps1
(test_venv)..esktop\test>
仮想環境に現在インストールされているモジュールを確認
(初期段階ではpipとsetuptools のみ)
(test_venv)..esktop\test> pip list
Package Version
---------- -------
pip 24.0
setuptools 65.5.0
必要なモジュールをpipでインストール (例:opencv (拡張モジュール群入り) )
(test_venv)..esktop\test> pip install opencv-contrib-python
インストールされたものを確認 (依存関係に基づいてモジュールがインストール)
(test_venv)..esktop\test> pip list
Package Version
--------------------- ---------
numpy 2.0.1
opencv-contrib-python 4.10.0.84
pip 24.0
setuptools 65.5.0
仮想環境を抜けて仮想環境内でインストールが完結しているか確認
(test_venv)..esktop\test> deactivate
..esktop\test> pip list
#別の結果が出てくる
Discussion