python-vnevとは
pythonでチーム開発していると開発者によってローカル環境の差異により、以下のような問題が発生します。
- インストールしているpythonのバージョンが異なる
- ローカル環境にインストールしているパッケージのバージョンが異なりエラーが発生
python-venvで各開発者のローカル環境に差異のない仮想環境(ベースと隔離されたpythonバージョン・モジュールのインストール先)を作成することで、クリーンな開発環境の構築を実現できます。
python-venv 仮想環境作成 → 実行 → 後片づけ【ubuntu 24.04】
こちらのgithubリポジトリで簡易的な検証ソースを作成しました。検証ソースを使用して以下の流れで解説します。
- 仮想環境作成
- 仮想環境のactivate
- 仮想環境にdotenv(.envファイルから環境変数読み込むモジュール)をインストール
- main.pyを実行し、dotenvで読み込んだ環境変数をコンソール出力
- 後片づけ
インストール済pythonバージョン確認
atoraku@ubuntu:~/blog1/python-venv$ python --version
Python 3.12.3
- 仮想環境を作成したいディレクトリに移動
- $
cd blog1/python-venv
- $
- python-venv3.12をインストール ※3.12の部分は仮想環境で実行したいpythonのバージョンを指定してください。
- $
sudo apt install python3.12-venv
- $
- 仮想環境作成コマンド実行
- $
python3.12 -m venv .venv
- ※ 上記コマンドの「.venv」の部分が仮想環境を保存するディレクトリとして作成されます。
- ディレクトリ名は任意の名前を付けることができますが、gitのコミット対象から外すため「.gitignore」ファイルにフォルダ名を追記しやすいよう当ブログでは「.venv」固定としています。
- $
- 仮想環境の活性化(activate)
- $
source .venv/bin/activate
- 仮想環境をactivateするとコマンドラインの先頭に仮想環境名がつくようになります。
- 仮想環境をactivateするとコマンドラインの先頭に仮想環境名がつくようになります。
- $
- プロジェクトで使用するpythonモジュールを列挙した「requirement.txt」を作成
- requirement.txtファイルを作成してプロジェクトでimprotするモジュールを列挙します。
- バージョン指定をしない場合はコマンド実行時の最新バージョンを取得します。バージョン差異によるエラーを防ぐため、全てのモジュールのバージョン指定をおすすめします。
- 例:
python-dotenv==1.0.1
- 例:
- pythonモジュールのインストール
- $
pip install -r requirements.txt
- $
pip list
を実行してインストールされていることを確認します。
- $
- 動作検証
- 検証コードはこちら。仮想環境にimportしたdotenvの動作確認をします。「.test.env」ファイルに設定された環境変数「TEST_ENV」の値が空文字列であれば「”TEST_ENV is empty”」を出力します。空文字列以外であれば設定値を出力します。
- 実行結果 「TEST_ENV=”SUCCESS”」
- 実行結果 「TEST_ENV=””」
- 仮想環境でモジュールのimport・実行に成功していることを確認しました。
- 仮想環境の非活性化(deactivate)
- $
deactivate
- $
- 仮想環境の削除
- $
rm -rf .venv
- $
以上で仮想環境作成 → 実行 → 後片づけの流れは終了です。お疲れ様でした。
異なるバージョンで仮想環境を作成する方法
ローカルにインストールされているバージョンと異なるバージョンで仮想環境を作成する方法を説明します。今回はpython 3.11の仮想環境を作成します。
インストール済pythonバージョン確認
atoraku@ubuntu:~/blog1/python-venv$ python --version
Python 3.12.3
- python3.11のインストール
- $ sudo add-apt-repository ppa:deadsnakes/ppa
- $ sudo apt update
- $ sudo apt install python3.11
- python-venv3.11をインストール
- $
sudo apt install python3.11-venv
- $
- 仮想環境作成コマンド実行
- $
python3.11 -m venv .venv
- $
- 仮想環境の活性化(activate)
- $
source .venv/bin/activate
- $
以降の手順は前セクションと同一になりますので省略します。
まとめ
この記事ではpython-venvの解説・インストール・使用方法について説明しました。いかがでしょうか?是非みなさまのお役に立てば幸いです。