Python_pyenvとvenvでWSL2に仮想環境を構築する #301日目
Djangoでの本番リリースを色々練習してみようと思い、その前準備として、仮想環境をさくっと構築する手順をまとめておきたいと思います。色んなチュートリアルをやると、それぞれで必要なライブラリが異なるためです。
手段としてはpipenvを使う方法もあるみたいですが、pipenvが素直に対応できないケースもあるみたいで、WSL2では簡単には動きませんでした。
pyenvとvenvの組み合わせであれば、WSL2の環境においても手軽に仮想環境を構築できます。
環境
WSL2 (Ubuntu 22.04 LTS)
Python 3.9.0
事前準備
WSL2とpyenvが使えるようになっていればOKです。それぞれの設定は色んな記事があるので見てみてください。
pyenvについては僕もまとめたことがあります。
プロジェクトフォルダのPythonバージョンを指定する
仮想環境を構築したいプロジェクトのフォルダに移動し、pyenvでPythonのバージョンを指定しておきます。
指定するバージョンがインストールされていなければ、まず以下のコマンドでインストールします。ここでは3.9.0を指定します。
pyenv install 3.9.0
インストールできたら、以下のコマンドでプロジェクトファイルのPythonバージョンを設定します。
pyenv local 3.9.0
Pythonのバージョンが設定通りになっているか確認しておきます。
$ python -V
Python 3.9.0
仮想環境を構築して入る
すごく簡単です。
以下のコマンドで仮想環境を構築できます。
$ python -m venv .venv
構築出来たら以下のコマンドで仮想環境に入れます。
$ source .venv/bin/activate
(.venv) $
中に入ってPythonバージョンを確認してみます。ここはpyenvで指定したバージョンになってるはずです。
(.venv) $ python --version
Python 3.9.0
必要なライブラリをインストールする
pipインストールが必要なライブラリを「requirment.txt」に記載すれば一括でインストールできます。
(.venv) $ touch requirement.txt
例えば以下のように記載します。
[requirement.txt]
django
Pillow
django-storages
boto3
インストールする前にpipリストがどうなっているか見ておきます。
(.venv) $ pip list
Package Version
---------- -------
pip 22.3
setuptools 49.2.1
ではrequirements.txtの内容をインストールしてみます。以下のコマンドです。
(.venv) $ pip install -r requirements.txt
完了したらpipリストを再度確認します。ちゃんとインストールされてますね。
(.venv) $ pip list
Package Version
--------------- -------
asgiref 3.5.2
boto3 1.26.3
botocore 1.29.3
Django 4.1.3
django-storages 1.13.1
jmespath 1.0.1
Pillow 9.3.0
pip 22.3
python-dateutil 2.8.2
s3transfer 0.6.0
setuptools 49.2.1
six 1.16.0
sqlparse 0.4.3
urllib3 1.26.12
仮想環境から出る時は以下のコマンドです。
(.venv) $ deactivate
$
ここまでお読みいただきありがとうございました!
参考
https://sig9.org/archives/2467