anthropics / anthropics/anthropic-sdk-python

pdfplumber broken in code_execution sandbox — charset_normalizer mypyc module missing

未關閉
#1,340 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
api
主要語言
Python
星號
3.9k
分支
853
平均合併
1 天 18 小時
30 天內合併 PR
11

描述

## 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())
```

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。