Python | Django | Pipenvの使い方

Pythonとは,高レベルの汎用プログラミング言語であり,読みやすさとシンプルさで知られている.Web開発やデータサイエンス,人口知能,機械学習など幅広く利用されている.なお,レベルの高低はハードウェアに近いかどうかを意味しており,レベルが低いとハードウェアに近いことを意味している.

Pythonには,DjangoというWebアプリケーションフレームワークがある.フレームワークのため,Djangoを利用するとWebアプリを通常よりも短時間で開発することが可能になる.

Pipenvとは,主にアプリケーションのユーザーと開発者に,簡単に作業環境を作れる方法を提供するためのツールである.また,Pipfile.lockを生成し,これを利用しビルドが常に同じ結果になるようにする.なお,ピップエンヴと発音する.

Pipenvの使い方

私がDjangoで開発をスタートする際には,開発の仮想環境にpipenvを利用する.常にデフォルトのグローバル管理での利用をしていたのだが,プロジェクト直下管理の方が有用のため,利用方法を以下に記す.

  • グローバル管理 (default)
  • プロジェクト直下管理 (PIPENV_VENV_IN_PROJECT=1)

グローバル管理 (default)

例えばDjangoでtodoアプリを開発をする際,以下のようにプロジェクトディレクトリをtodoにし,backendディレクトリでDjango, frontendディレクトリでReactなどを利用する.

todo/ 
├─backend/ 
└─frontend/

backendディレクトリにて仮想環境を作成する際,以下コマンドを実行する.これにより,Pipfile, Pipfile.lockを作成する.

pipenv install

以下コマンドを実行し,仮想環境に入る.

pipenv shell

上記にて仮想環境を構築すると,以下を実行した場合に利用できなくなる恐れがある.理由はプロジェクト識別が絶対パスのためである.

  • todoディレクトリやbackendディレクトリの場所変更
  • todoディレクトリの名前を変更
  • pipenv shellで起動すると別プロジェクトの環境に入る

プロジェクト直下管理 (PIPENV_VENV_IN_PROJECT=1)

グローバル管理 (default)でのpipenvを利用した場合の問題解決をするため,プロジェクト直下管理でのpipenvの利用を以下に記す.

backend/.envに以下コードを記載する.

PIPENV_VENV_IN_PROJECT=1

backend/.gitignoreには以下コードを記載する.

.venv/
.env

backendディレクトリにて仮想環境を作成する際,以下コマンドを実行する.これにより,Pipfile, Pipfile.lockを作成する.

pipenv install

そして,backendディレクトリに".venv"が作成され,仮想環境はここに固定される.

backend/
 ├─ .venv/
 ├─ Pipfile
 └─ Pipfile.lock

“.env"が作成されることにより,ディレクトリの名前変更や移動をしてもpipenvの仮想環境は利用可能となる.

Pipenvのコマンド一覧

以下コマンドは,仮想環境を削除する.

pipenv --rm

以下コマンドは,仮想環境に入らずに実行する.

pipenv run

以下コマンドは,仮想環境にDjangoをインストールし,PipfileとPipfile.lockを更新する.

pipenv install django

以下コマンドは,仮想環境のDjangoをアンインストールする.

pipenv uninstall django

以下コマンドは,仮想環境の場所を表示する.

pipenv --venv

以下コマンドは,使用中のPython実行ファイルを表示する.

pipenv --py

以下コマンドは,依存関係のツリー表示をする.

pipenv graph

参照

Pipenv: 人間のためのPython開発ワークフロー

以上