Skip to main content

python-debug-execution-911f17

Debug Python script execution failures by capturing full tracebacks and verifying working directory

معلومات المصدر

المستودع
HKUDS/OpenSpace
آخر نشاط في المصدر
١٧ يوليو ٢٠٢٦ في ٠٣:٤٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٧٬٧٧٣
التفرعات
٩٢٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
python-debug-execution-911f17
description
Debug Python script execution failures by capturing full tracebacks and verifying working directory
# Python Debug Execution This skill provides a pattern for debugging Python script execution failures. It ensures you capture actual tracebacks instead of opaque errors and verifies the working directory before file operations. ## Core Pattern ### 1. Execute with Full Traceback Capture Always run Python scripts with stderr redirected and exit code reported: ```bash python3 script.py 2>&1 ; echo Exit code: $? ``` This pattern: - `2>&1` - Redirects stderr to stdout so all output (including tracebacks) is captured together - `echo Exit code: $?` - Reports the exit code to distinguish between successful runs and failures **Why this matters:** Opaque errors without tracebacks make it impossible to identify the root cause. The exit code tells you if the script succeeded (0) or failed (non-zero). ### 2. Verify Working Directory Before File Operations Before any file read/write operations in your Python script, add: ```python import os print(f"Current working directory: {os.getcwd()}") ``` Or for debugging, add at the start of your script: ```python import os import sys # Debug: show execution context print(f"Script path: {__file__}") print(f"Working directory: {os.getcwd()}") print(f"Python version: {sys.version}") ``` **Why this matters:** File operations often fail due to incorrect assumptions about the current working directory. Verifying `os.getcwd()` helps diagnose path-related errors. ## Usage Examples ### Example 1: Running a Script with Debug Output ```bash # Instead of: python3 analyze.py # Use: python3 analyze.py 2>&1 ; echo Exit code: $? ``` ### Example 2: Script with Directory Verification ```python #!/usr/bin/env python3 import os import pandas as pd # Verify execution context print(f"Working directory: {os.getcwd()}") # Now safe to do file operations data_path = "data/input.csv" print(f"Attempting to read: {data_path}") # Check if file exists before reading if os.path.exists(data_path): df = pd.read_csv(data_path) print(f"Successfully loaded {len(df)} rows") else: print(f"ERROR: File not found at {os.path.abspath(data_path)}") print(f"Directory contents: {os.listdir('.')}") ``` ### Example 3: Debug-First Script Template ```python #!/usr/bin/env python3 """Template for debuggable Python scripts.""" import os import sys import traceback def main(): # Debug: execution context print("=" * 50) print(f"Script: {__file__}") print(f"Working directory: {os.getcwd()}") print(f"Python: {sys.version}") print("=" * 50) try: # Your main logic here pass except Exception as e: print(f"ERROR: {type(e).__name__}: {e}") traceback.print_exc() sys.exit(1) if __name__ == "__main__": main() ``` ## Troubleshooting Checklist When a Python script fails: 1. **Check the exit code** - Non-zero means failure 2. **Read the full traceback** - Look for the actual error message and line number 3. **Verify working directory** - Use `os.getcwd()` to confirm file paths are correct 4. **Check file existence** - Use `os.path.exists()` before operations 5. **Use absolute paths** - Consider `os.path.abspath()` for clarity ## When to Apply This Pattern - Running any Python script from the command line - Debugging script execution failures in automated agents - Writing scripts that perform file I/O operations - Creating reproducible execution environments
عرض على GitHub