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 摘要。