🕌
Pythonプロジェクトの環境構築を自動化する:venv環境の自動構築シェル関数の紹介
はじめに
Pythonプロジェクトを開始する際、最初のステップとして仮想環境(venv)の構築が必要となります。
python -m venv .venv
を手動で実行する作業を自動化するため、.pyファイル作成時に自動的にvenv環境を構築するシェル関数を紹介します。
主な機能
本シェル関数は以下の機能を提供します:
- .pyファイル作成時のvenv環境の自動検出
- 未構築の場合の仮想環境の自動作成
- pipパッケージの最新化
- .gitignoreファイルの自動生成/更新
- requirements.txtの初期作成
実装コード
以下のコードを.bashrc
または.zshrc
に追加してください:
function touch() {
# カラーコードの定義
local GREEN='\033[0;32m'
local YELLOW='\033[0;33m'
local BLUE='\033[0;34m'
local RED='\033[0;31m'
local NC='\033[0m'
# 引数をループで処理
for file in "$@"; do
# 通常のtouchコマンドを実行
command touch "$file"
# .pyファイルかチェック
if [[ "$file" == *.py ]]; then
echo -e "${BLUE}Python file detected: $file${NC}"
# 現在のディレクトリとその親ディレクトリでvenv/を探索
local venv_found=false
local current_dir="$PWD"
while [[ "$current_dir" != "/" ]]; do
if [[ -d "$current_dir/venv" || -d "$current_dir/.venv" ]]; then
venv_found=true
break
fi
current_dir=$(dirname "$current_dir")
done
# venvが見つからない場合、新規作成
if ! $venv_found; then
echo -e "${YELLOW}No virtual environment found. Creating new venv...${NC}"
# Pythonのバージョンを確認
if command -v python3 >/dev/null 2>&1; then
python3 -m venv .venv
# venvをアクティベート
source .venv/bin/activate
# pipのアップグレード
echo -e "${BLUE}Upgrading pip...${NC}"
pip install --upgrade pip
# requirements.txtを作成
pip freeze > requirements.txt
echo -e "${GREEN}Virtual environment created and activated${NC}"
# .gitignoreの作成または更新
if [[ ! -f .gitignore ]]; then
echo -e "venv/\n.venv/\n__pycache__/\n*.pyc" > .gitignore
echo -e "${BLUE}Created .gitignore file${NC}"
else
# .gitignoreに既存の項目がなければ追加
for item in "venv/" ".venv/" "__pycache__/" "*.pyc"; do
if ! grep -q "^$item" .gitignore; then
echo "$item" >> .gitignore
fi
done
echo -e "${BLUE}Updated .gitignore file${NC}"
fi
else
echo -e "${RED}Python 3 is not installed${NC}"
fi
fi
fi
done
}
使用方法
- 上記のコードを設定ファイルに追加します
- シェルを再起動するか、設定ファイルを再読み込みします
-
touch
コマンドで.pyファイルを作成します
実行例:
$ touch main.py
Python file detected: main.py
No virtual environment found. Creating new venv...
Upgrading pip...
Virtual environment created and activated
Created .gitignore file
動作仕様
以下の手順で処理が実行されます:
- .pyファイル作成時にvenv環境の存在確認を行います
- venv環境が存在しない場合:
-
.venv
ディレクトリを作成します - 仮想環境を有効化します
- pipを最新版にアップデートします
- 初期状態のrequirements.txtを作成します
- .gitignoreファイルを作成または更新します
-
カスタマイズ方法
以下のようなカスタマイズが可能です:
- venvディレクトリ名の変更
- 追加パッケージの自動インストール設定
- .gitignoreの設定項目の調整
- プロジェクトテンプレートの追加
注意事項
- 既存の
touch
コマンドを上書きするため、必要に応じて関数名の変更をご検討ください - Python3のインストールが前提となります
- シェルスクリプトはbash/zsh環境での動作を想定しています
まとめ
本シェル関数を導入することで、Pythonプロジェクトの初期設定を自動化し、開発効率を向上させることができます。
特に小規模スクリプト開発において、環境構築の工数を削減することが可能です。
その他の記事紹介
これ以外にも以下のようなPythonの開発に役立つシェルスクリプトを紹介しています。
Discussion