anthropics / anthropics/anthropic-sdk-python
pdfplumber broken in code_execution sandbox — charset_normalizer mypyc module missing
- Vorherrschende Sprache
- Python
- Sterne
- 3.9k
- Forks
- 853
- Ø Merge
- 1 T. 18 Std.
- Gemergte PRs (30 T.)
- 11
Beschreibung
## Environment
- Tool: `code_execution_20250825` sandbox
- Python: 3.11.12, Linux x86_64
## Error
```
ModuleNotFoundError: No module named '81d243bd2c585b0f4821__mypyc'
```
Full traceback:
```
File "", line 1, in
File "/usr/local/lib/python3.11/site-packages/pdfplumber/__init__.py", line 11, in
import pdfminer.pdftypes
File "/usr/local/lib/python3.11/site-packages/pdfminer/pdftypes.py", line 22, in
from pdfminer.psparser import LIT, PSObject
File "/usr/local/lib/python3.11/site-packages/pdfminer/psparser.py", line 20, in
from pdfminer.utils import choplist
File "/usr/local/lib/python3.11/site-packages/pdfminer/utils.py", line 31, in
import charset_normalizer
File "/usr/local/lib/python3.11/site-packages/charset_normalizer/__init__.py", line 24, in
from .api import from_bytes, from_fp, from_path, is_binary
File "/usr/local/lib/python3.11/site-packages/charset_normalizer/api.py", line 5, in
from .cd import (
ModuleNotFoundError: No module named '81d243bd2c585b0f4821__mypyc'
```
## Reproduction
```python
import pdfplumber
```
This fails immediately on import inside the code execution sandbox.
## Root Cause
The `charset_normalizer` package (dependency chain: `pdfplumber` → `pdfminer` → `charset_normalizer`) ships mypyc-compiled C extensions. The hash-prefixed module name (`81d243bd2c585b0f4821__mypyc`) indicates a compiled `.so` binary that is either missing from the sandbox image or was built for a different platform/Python ABI.
## Impact
`pdfplumber` is documented as a pre-installed package in the code execution sandbox but is completely unusable. Users who upload PDFs and rely on the agent choosing `pdfplumber` for table/text extraction hit this error.
## Workaround
Use `pypdf` instead, which works correctly in the sandbox:
```python
from pypdf import PdfReader
reader = PdfReader("file.pdf")
for page in reader.pages:
print(page.extract_text())
```
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.