OpenSpace python-shell-fallback
Fallback to shell execution when sandbox fails for library-dependent Python code
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-shell-fallback" ~/.claude/skills/hkuds-openspace-python-shell-fallback && rm -rf "$T"
manifest:
gdpval_bench/skills/python-shell-fallback/SKILL.mdsource content
Python Shell Fallback
When
execute_code_sandbox fails for Python code that depends on external libraries, use run_shell with a heredoc Python script as a reliable fallback. The shell environment typically has better access to installed packages and system configuration than the sandbox.
When to Use This Pattern
Apply this skill when:
returns errors related to missing libraries (e.g.,execute_code_sandbox
)ModuleNotFoundError- The code requires packages that may not be installed in the sandbox environment
- You need PDF generation, data visualization, or other library-heavy operations
- Previous sandbox execution attempts have failed with import errors
How to Implement
Step 1: Identify the Failure
Check if the sandbox error indicates a library/dependency issue:
ModuleNotFoundError: No module named 'xxx'ImportError: cannot import name 'xxx'- Similar package-related errors
Step 2: Convert to Shell Execution
Rewrite the code execution using
run_shell with a heredoc:
python3 << 'EOF' # Your Python code here import library_name # ... rest of code EOF
Step 3: Execute via run_shell
Call
run_shell with the heredoc Python script:
command: python3 << 'EOF' import reportlab from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas # Your library-dependent code here c = canvas.Canvas("output.pdf", pagesize=letter) c.drawString(100, 750, "Hello World") c.save() EOF
Example: PDF Generation Fallback
Sandbox attempt (fails):
# execute_code_sandbox call fails with: # ModuleNotFoundError: No module named 'reportlab'
Shell fallback (works):
python3 << 'EOF' from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas c = canvas.Canvas("legal_memo.pdf", pagesize=letter) c.setTitle("Legal Memorandum") c.drawString(100, 750, "CONFIDENTIAL LEGAL MEMORANDUM") c.save() print("PDF created successfully") EOF
Best Practices
- Use quoted heredoc (
) - Prevents variable expansion, keeping Python code intact<< 'EOF' - Verify output - Check stdout/stderr from
to confirm successrun_shell - Handle file paths - Ensure output files are written to accessible directories
- Test incrementally - For complex scripts, test in smaller chunks first
- Include error handling - Add try/except blocks to capture issues gracefully
Alternative: Inline Python Command
For simple one-liners or short scripts:
python3 -c "import reportlab; print(reportlab.__version__)"
Troubleshooting
If shell execution also fails:
- Check if Python3 is available:
which python3 - Verify package installation:
pip3 list | grep package_name - Try
instead ofpython
(some systems differ)python3 - Consider installing the package:
pip3 install package_name