CtrlK
BlogDocsLog inGet started
Tessl Logo

python-shell-workaround

Workaround for executing Python code with external packages when sandbox fails

63

Quality

73%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./benchmarks/gdpval/skills/python-shell-workaround/SKILL.md
SKILL.md
Quality
Evals
Security

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

  1. Escape quotes properly: Use single quotes inside double-quoted strings or vice versa
  2. Use heredocs for multiline code: Cleaner and easier to debug
  3. Install packages if needed: Add pip install package before your Python command if packages are missing
  4. 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 .py file first, then execute with python3 script.py
Repository
HKUDS/OpenSpace
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.