OpenSpace/gdpval_bench/skills/python-debug-execution/SKILL.md
2026-03-24 16:03:22 +08:00

94 lines
No EOL
2.6 KiB
Markdown

---
name: python-debug-execution
description: Debug Python scripts with proper error surfacing and working directory verification
---
# Python Debug Execution Pattern
When executing Python scripts that may fail, use this pattern to surface clear error information and diagnose issues effectively.
## Core Technique
### 1. Execute with Full Error Output
Always run Python scripts with stderr redirected to stdout and echo the exit code:
```bash
python3 script.py 2>&1 ; echo Exit code: $?
```
**Why this works:**
- `2>&1` captures both stdout and stderr, ensuring tracebacks are visible
- `echo Exit code: $?` reveals the actual exit status for debugging
- Avoids opaque "command failed" errors that hide the real cause
### 2. Verify Working Directory in Script
Before any file operations in Python scripts, add working directory verification:
```python
import os
# At the start of your script or before file operations
print(f"Current working directory: {os.getcwd()}")
# For debugging, also list directory contents
print(f"Directory contents: {os.listdir('.')}")
```
**Why this works:**
- File not found errors often stem from incorrect working directory assumptions
- Makes path-related failures immediately diagnosable
- Confirms the execution context matches expectations
## Complete Debugging Workflow
### Step 1: Add Diagnostic Code to Script
```python
#!/usr/bin/env python3
import os
import sys
def main():
# Diagnostic: verify execution context
print(f"Working directory: {os.getcwd()}")
print(f"Python version: {sys.version}")
print(f"Directory listing: {os.listdir('.')}")
# Your actual logic here
# ...
if __name__ == "__main__":
main()
```
### Step 2: Execute with Full Error Capture
```bash
python3 script.py 2>&1 ; echo Exit code: $?
```
### Step 3: Analyze Output
Look for:
- Traceback messages (indicate code errors)
- Exit code (0 = success, non-zero = failure)
- Working directory confirmation
- Missing file/directory errors
## Common Failure Patterns
| Symptom | Likely Cause | Debug Clue |
|---------|-------------|------------|
| FileNotFoundError | Wrong working directory | Check `os.getcwd()` output |
| ModuleNotFoundError | Missing dependencies | Traceback shows import path |
| PermissionError | File access issues | Traceback shows file path |
| Silent failure (exit 0, no output) | Logic bug, not crash | Add print statements |
## When to Use This Pattern
- Running Python scripts in automated/agent contexts
- Debugging scripts that interact with files
- Troubleshooting CI/CD pipeline failures
- Any scenario where script output may be truncated or hidden