venvによる軽量なPython仮想環境構築

スポンサーリンク
Python
スポンサーリンク

 venvを使うとプロジェクト毎に異なるPythonのパッケージ環境を構築できるので、簡易的に仮想環境を作ることができます。プロジェクト毎に必要なモジュールのみの環境を構築するすることで、目的に合致したモジュールのみでの最小限の仮想環境を作成してみましょう。

今回の環境:
 OS:Windows11
 言語:Python3.10.4
 エディタ:VSCode
 シェル:PowerShell

参考:venv — 仮想環境の作成(日本語公式サイト)

プロジェクトディレクトリの準備

 まず、プロジェクトディレクトリを準備してやります。今回は、Dドライブの中のMyPython/の下にvenv_test/をプロジェクトディレクトとして準備します。PowerShellでディレクトリを作成し、その中に移動します。そして仮想環境をアクティブにします。

> mkdir venv-test
> cd venv-test

venvで仮想環境の作成

 venvはPython3.3以降で追加されたPythonの標準モジュールです。PowerShellで『python -m venv [仮想空間の名前]』と入力することで、カレントディレクトリの下に仮想環境を作成してくれます。今回は公式ページに倣って『myenv』という環境を作成します。
 続いて、環境をアクティブにします。『./myenv/Scripts/Activate.ps1』

> python -m venv myenv
> ./myenv/Scripts/Activate.ps1

アクティブにする方法は、OSやバージョンにより、異なるのでアクティブにする方法は使っているシステムによって異なるようです。詳しくは公式ドキュメントを確認してください。

引き続き、Visual Studio Code(VS Code)で開いてみます。もし、VS Codeをインストールしていない場合は、事前にインストールが必要です。

 VS Codeは下のコマンドで開きます。今回はPowerShellのカレントディレクトリをルートディレクトリとして開きます。

 code [ルートディレクト]

PS D:\MyPython\venv_test> ./myenv/Scripts/Activate.ps1
(myenv) PS D:\MyPython\venv_test> code .

 VS Codeが開いたら、歯車の「設定」からコマンドパレットを開いて、「Python:Select interpreter」と入れて、Pythonのインタープリターの選択を確認すると、myenvのPythonが選ばれているのがわかります。実行環境としての仮想環境ができているのがわかります。

venvへのライブラリのインストール

 venvへのライブラリのインストールは、仮想空間がアクティブな状況で、通常のライブラリのインストールと同様にpipコマンドでインストールできます。ここでは、もう一度、PowerShellに戻って、そこからpandasをインストールしてみます。pandasと関連するnumpyなどの複数のライブラリがインストールされました。

(myenv) PS D:\MyPython\venv_test> python -m pip install pandas
Collecting pandas
  Using cached pandas-1.4.2-cp310-cp310-win_amd64.whl (10.6 MB)
Collecting numpy>=1.21.0
  Downloading numpy-1.22.4-cp310-cp310-win_amd64.whl (14.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.7/14.7 MB 17.7 MB/s eta 0:00:00
Collecting python-dateutil>=2.8.1
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting pytz>=2020.1
  Using cached pytz-2022.1-py2.py3-none-any.whl (503 kB)
Collecting six>=1.5
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: pytz, six, numpy, python-dateutil, pandas
Successfully installed numpy-1.22.4 pandas-1.4.2 python-dateutil-2.8.2 pytz-2022.1 six-1.16.0
(myenv) PS D:\MyPython\venv_test> python -m pip list
Package         Version
--------------- -------
numpy           1.22.4
pandas          1.4.2
pip             22.1.1
python-dateutil 2.8.2
pytz            2022.1
setuptools      58.1.0
six             1.16.0
(myenv) PS D:\MyPython\venv_test>

venvから出る

 deactivateコマンドでvenvから抜けます。

(myenv) PS D:\MyPython\venv_test> deactivate
PS D:\MyPython\venv_test>

venvで作成した仮想空間を削除

 仮想空間の削除は作成した仮想空間のディレクトリ以下のファイルを削除するだけで削除できます。

PS D:\MyPython\venv_test> rm -r myenv/

参考

公式ドキュメント(日本語訳版)venv — 仮想環境の作成

Python
スポンサーリンク
鷹の目週末プログラマー

コメント