OpenSpace python-shell-workaround
Workaround for executing Python code with external packages when sandbox fails
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-workaround" ~/.claude/skills/hkuds-openspace-python-shell-workaround && rm -rf "$T"
manifest:
gdpval_bench/skills/python-shell-workaround/SKILL.mdsource content
Python Shell Workaround
When to Use This Skill
Use this pattern when
execute_code_sandbox fails with Python code that requires external packages (like openpyxl, python-docx, pandas, etc.) that may not be available in the sandbox environment.
The Pattern
Instead of relying solely on
execute_code_sandbox, use run_shell with inline Python commands as a fallback:
python3 -c "your python code here"
Step-by-Step Instructions
Step 1: Detect Sandbox Failure
Watch for errors like:
- ModuleNotFoundError for common packages
- Import errors for external libraries
- Sandbox environment limitations
Step 2: Convert Python Code to Shell Command
Transform your Python script into a one-liner or use a heredoc for longer scripts:
For simple code:
python3 -c "import openpyxl; wb = openpyxl.Workbook(); wb.save('file.xlsx')"
For complex code (using heredoc):
python3 << 'EOF' import openpyxl from openpyxl.utils import get_column_letter wb = openpyxl.Workbook() ws = wb.active ws['A1'] = 'Header' wb.save('output.xlsx') print('File created successfully') EOF
Step 3: Execute with run_shell
Use
run_shell to execute the command:
tool: run_shell command: python3 -c "import openpyxl; print('Package available')"
Step 4: Verify Output
Check the stdout/stderr from run_shell to confirm success, then proceed with subsequent steps.
Best Practices
- Escape quotes properly: Use single quotes inside double-quoted strings or vice versa
- Use heredocs for multiline code: Cleaner and easier to debug
- Install packages if needed: Add
before your Python command if packages are missingpip install package - Chain commands safely: Use
to ensure prerequisites succeed before running Python code&&
Example Scenarios
Creating Excel Files
python3 << 'EOF' import openpyxl from openpyxl.worksheet.datavalidation import DataValidation wb = openpyxl.Workbook() ws = wb.active ws.title = "Data" # Add headers headers = ['Name', 'Email', 'Status'] for col, header in enumerate(headers, 1): ws.cell(row=1, column=col, value=header) wb.save('output.xlsx') EOF
Creating Word Documents
python3 -c " from docx import Document doc = Document() doc.add_heading('Report', 0) doc.save('report.docx') print('Document created') "
Limitations
- Complex multiline scripts are harder to maintain as one-liners
- Debugging is less convenient than in sandbox
- Some packages may still not be available in the shell environment
Related Patterns
- If packages are truly unavailable, consider installing them first:
pip install package_name && python3 -c "..." - For persistent scripts, write to a
file first, then execute with.pypython3 script.py