OpenSpace python-execution-fallback-9d4989
Fallback method for executing Python when execute_code_sandbox fails with unknown errors
install
source · Clone the upstream repo
git clone https://github.com/HKUDS/OpenSpace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/OpenSpace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/gdpval_bench/skills/python-execution-fallback-9d4989" ~/.claude/skills/hkuds-openspace-python-execution-fallback-9d4989 && rm -rf "$T"
manifest:
gdpval_bench/skills/python-execution-fallback-9d4989/SKILL.mdsource content
Python Execution Fallback
When to Use
Use this skill when
execute_code_sandbox returns 'unknown error' or fails unexpectedly, even on simple Python code like print statements.
Solution
Switch to using
run_shell with Python heredoc syntax instead of execute_code_sandbox.
Basic Syntax
python3 << 'EOF' # Your Python code here print("Hello World") result = 2 + 2 print(f"Result: {result}") EOF
How to Call
Instead of:
execute_code_sandbox(code="print('Hello')")
Use:
run_shell(command="python3 << 'EOF'\nprint('Hello')\nEOF")
For multi-line code, build the command string:
code = """ import json data = {"status": "ok", "count": 42} print(json.dumps(data)) """ run_shell(command=f"python3 << 'EOF'\n{code}\nEOF")
Why This Works
executes commands directly in the shell environment, bypassing sandbox issuesrun_shell- Heredoc syntax (
) allows clean multi-line Python code without complex escaping<< 'EOF' - Single quotes around EOF prevent unwanted shell variable expansion
- More reliable for simple to moderate Python execution tasks
Guidelines
- Always use single quotes around EOF (
) to prevent variable expansion'EOF' - Test with a simple print statement first to verify Python is available
- For longer scripts, consider writing to a
file first, then executing:.pyrun_shell(command="python3 /path/to/script.py") - Capture stdout from run_shell to get Python output
- Handle errors by checking run_shell's stderr output
Example: Complete Workflow
# Step 1: Try execute_code_sandbox try: result = execute_code_sandbox(code="print(2+2)") except Exception as e: # Step 2: Fallback to run_shell with heredoc result = run_shell(command="python3 << 'EOF'\nprint(2+2)\nEOF") # Parse stdout to get the output output = result.stdout.strip()
Troubleshooting
| Issue | Solution |
|---|---|
| Python not found | Use to verify installation |
| Heredoc not working | Ensure single quotes around EOF delimiter |
| Complex imports fail | Install required packages or write to .py file |
| Output not captured | Check run_shell stdout, not return value |