Skip to main content

python-shell-fallback

Fallback to shell execution when sandbox fails for library-dependent Python code

معلومات المصدر

المستودع
HKUDS/OpenSpace
آخر نشاط في المصدر
١٧ يوليو ٢٠٢٦ في ٠٣:٤٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٧٬٧٧٣
التفرعات
٩٢٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
python-shell-fallback
description
Fallback to shell execution when sandbox fails for library-dependent Python code
# 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: - `execute_code_sandbox` returns errors related to missing libraries (e.g., `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: ```bash 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):** ```python # execute_code_sandbox call fails with: # ModuleNotFoundError: No module named 'reportlab' ``` **Shell fallback (works):** ```bash 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 1. **Use quoted heredoc (`<< 'EOF'`)** - Prevents variable expansion, keeping Python code intact 2. **Verify output** - Check stdout/stderr from `run_shell` to confirm success 3. **Handle file paths** - Ensure output files are written to accessible directories 4. **Test incrementally** - For complex scripts, test in smaller chunks first 5. **Include error handling** - Add try/except blocks to capture issues gracefully ## Alternative: Inline Python Command For simple one-liners or short scripts: ```bash 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 `python` instead of `python3` (some systems differ) - Consider installing the package: `pip3 install package_name`
عرض على GitHub