fastapi_django_main_live / INTERPRETER_CONFIG.md
GitHub Action
🚀 Auto-deploy from GitHub Actions
7b7bdab
|
raw
history blame
4.23 kB

Interpreter Process Configuration

修正済み: 環境に依存しない動的パス設定

概要

process.pyのBASE_PATH設定が固定値だったため、異なる環境でエラーが発生していた問題を修正しました。現在は環境に応じて動的にパスを設定します。

自動検出される環境

  1. 環境変数での設定 (最優先)

    export INTERPRETER_BASE_PATH="/custom/path/to/controller/"
    
  2. GitHub Codespaces環境: /workspaces/ を含むパス

    • 自動設定: {current_dir}/app/Http/controller/
  3. Docker環境: /home/user/app/ パスで実行

    • 自動設定: /home/user/app/app/Http/controller/
  4. ローカル開発環境: fastapi_django_main_live を含むパス

    • 自動設定: {current_dir}/app/Http/controller/
  5. フォールバック環境: 上記以外

    • 自動設定: {current_dir}/temp_controller/

修正内容

1. 動的パス検出の実装

def get_base_path():
    """環境に応じて動的にベースパスを取得"""
    # 環境変数チェック
    # 現在のディレクトリ分析
    # 適切なパス生成
    # フォールバック処理

2. 安全な初期化

# 遅延初期化でimport時エラーを回避
BASE_PATH = None

def get_base_path_safe():
    global BASE_PATH
    if BASE_PATH is None:
        BASE_PATH = get_base_path()
    return BASE_PATH

3. 堅牢なエラーハンドリング

def ensure_base_path_exists():
    # パス作成の試行
    # 書き込み権限確認
    # フォールバック処理
    # 詳細なログ出力

使用例

通常の使用(自動検出)

from mysite.interpreter.process import ensure_base_path_exists, get_base_path_safe

# パスの確認と作成
if ensure_base_path_exists():
    base_path = get_base_path_safe()
    print(f"Base path ready: {base_path}")

環境変数での設定

# .env ファイルまたはシェル
export INTERPRETER_BASE_PATH="/workspace/my_project/controllers/"

# Python
from mysite.interpreter.process import get_base_path
path = get_base_path()  # 設定された環境変数を使用

Docker環境での使用

ENV INTERPRETER_BASE_PATH="/app/controllers/"

Codespaces環境での使用

// .devcontainer/devcontainer.json
{
  "containerEnv": {
    "INTERPRETER_BASE_PATH": "/workspaces/fastapi_django_main_live/app/Http/controller/"
  }
}

トラブルシューティング

権限エラーの場合

# ディレクトリを手動作成
mkdir -p /path/to/controller
chmod 755 /path/to/controller

# 環境変数設定
export INTERPRETER_BASE_PATH="/path/to/controller/"

パス確認方法

from mysite.interpreter.process import get_base_path_safe
print(f"Current BASE_PATH: {get_base_path_safe()}")

設定検証スクリプト

cd /workspaces/fastapi_django_main_live
python verify_process_fix.py

ログの確認

from mysite.logger import logger

# 現在のベースパスを確認
from mysite.interpreter.process import get_base_path_safe
logger.info(f"Current BASE_PATH: {get_base_path_safe()}")

既知の問題と解決策

問題: ImportError

原因: Django設定が正しく読み込まれていない
解決策:

import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
import django
django.setup()

問題: 権限エラー

原因: ディレクトリへの書き込み権限がない
解決策: 環境変数で書き込み可能なパスを指定

問題: パスが見つからない

原因: 自動検出が失敗
解決策: INTERPRETER_BASE_PATH環境変数を明示的に設定

テスト方法

  1. 基本テスト

    python verify_process_fix.py
    
  2. Django環境でのテスト

    python manage.py shell -c "from mysite.interpreter.process import get_base_path; print(get_base_path())"
    
  3. カスタムパステスト

    export INTERPRETER_BASE_PATH="/tmp/test_path/"
    python verify_process_fix.py