PaddlePaddle/PaddleOCR · error · RuntimeError
PPTX conversion requires python-pptx: pip install paddleocr[
Error message
PPTX conversion requires python-pptx: pip install paddleocr[doc2md]
What it means
RuntimeError raised by PptxConverter.convert_file when importing python-pptx (Presentation, Picture) fails. PPTX-to-Markdown conversion is gated behind the optional doc2md extra, which bundles python-pptx.
Source
Thrown at paddleocr/_doc2md/converters/pptx.py:166
if url:
escaped_url = _escape_md_url(url)
t = f"[{t}]({escaped_url})"
return t
@default_registry.register
class PptxConverter(BaseConverter):
supported_extensions = ["pptx"]
supported_mimetypes = [
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
]
def convert_file(self, file_path: Path, **kwargs) -> ConvertResult:
try:
from pptx import Presentation
from pptx.shapes.picture import Picture
except ImportError:
raise RuntimeError(
"PPTX conversion requires python-pptx: pip install paddleocr[doc2md]"
)
try:
from pptx.enum.shapes import MSO_SHAPE_TYPE
except ImportError:
MSO_SHAPE_TYPE = None # type: ignore[assignment]
prs = Presentation(str(file_path))
slides_md = []
images: dict = {}
image_counter = [0]
slide_width = prs.slide_width
self._Picture = Picture
self._MSO_SHAPE_TYPE = MSO_SHAPE_TYPE
for slide in prs.slides:
slide_parts = []
View on GitHub (pinned to 2661c7c0ef)
Solutions
- pip install 'paddleocr[doc2md]'
- Or directly: pip install python-pptx
- Add a startup dependency probe for all formats you intend to accept
Example fix
# before (shell) pip install paddleocr # after pip install 'paddleocr[doc2md]'
Defensive patterns
Strategy: validation
Validate before calling
import importlib.util
if importlib.util.find_spec('pptx') is None:
raise RuntimeError('python-pptx missing: pip install paddleocr[doc2md]') Try / catch
try:
result = doc2md_convert(path)
except RuntimeError as e:
if 'python-pptx' in str(e):
fail_with_install_hint(e)
raise Prevention
- Install the doc2md extra when accepting .pptx uploads
- Gate file types on a probe of their converter deps
When it happens
Trigger: doc2md_convert('slides.pptx') without python-pptx installed; iterating a directory of mixed Office files where any .pptx triggers this converter.
Common situations: Document-ingestion services that accept arbitrary Office formats but were deployed without the doc2md extra.
Related errors
- DOCX conversion requires python-docx: pip install paddleocr[
- XLSX conversion requires openpyxl: pip install paddleocr[doc
- pylatexenc is required for math formula conversion. Install
- File not found: {file_path}
- Failed to convert {file_path.name}: {e}
AI-assisted analysis of PaddlePaddle/PaddleOCR@2661c7c0ef (2026-08-14).
Data as JSON: /api/errors/883726b6d8df9586.
Report an issue: GitHub.