本文档说明 OCR Platform 及 MinerU 相关项目的 Python 环境管理策略:conda 管环境隔离,uv 管依赖安装。
| 层级 | 推荐工具 | 作用 |
|---|---|---|
| Python 版本 / 环境隔离 | conda | 固定 Python 3.10–3.13,多项目互不干扰 |
| 依赖安装 | uv | 官方推荐,解析与安装速度显著快于 pip/conda |
不是二选一:本项目约定使用 conda activate mineru 创建/激活环境后,用 uv pip install 安装包。
MinerU 官方安装方式同样以 uv 为主(见 MinerU README),conda 在本项目中主要用于环境壳层,而非替代 pip 装包。
conda create -n mineru python=3.12
conda activate mineru
# 安装 uv(若尚未安装)
pip install uv -i https://mirrors.aliyun.com/pypi/simple
# PyPI 安装(用户)
uv pip install -U "mineru[all]" -i https://mirrors.aliyun.com/pypi/simple
# 源码开发安装(开发者)
cd /path/to/MinerU
uv pip install -U -e '.[all]' -i https://mirrors.aliyun.com/pypi/simple
conda run -n mineru uv pip install -U "mineru[core]" -i https://mirrors.aliyun.com/pypi/simple
conda run -n mineru python -c "import torch; print(torch.__version__)"
conda activate mineru
python -c "import torch; print(f'PyTorch: {torch.__version__}, CUDA: {torch.cuda.is_available()}')"
python -c "import mineru; print('mineru OK')"
固定 Python 版本
MinerU 要求 Python 3.10–3.13。Windows 上使用 vLLM 时,因 ray 限制暂不支持 3.13,建议使用 3.10–3.12。
CUDA / cuDNN 版本对齐困难时(Linux GPU)
pip 的 torch / vllm wheel 自带部分 CUDA runtime,但仍需与 NVIDIA 驱动、Compute Capability 匹配。conda-forge / nvidia channel 可一次性安装 pytorch-cuda + cudnn,减少版本矩阵踩坑。
需要编译的 C++ 扩展
例如 DiT 布局检测 依赖的 detectron2,从源码编译时常需匹配的 gcc/clang 与 torch ABI;conda-forge 预编译包有时更省事。
多项目环境隔离
OCR Platform 同时涉及 MinerU、PaddleX、DotsOCR 等,用 conda 区分环境可避免依赖冲突。
MinerU 本体及绝大部分 PyPI 依赖
mineru[all] 中的 torch、transformers、vllm、onnxruntime、opencv-python、fastapi 等均有 PyPI wheel。
日常开发、CI、重装依赖
uv 解析与安装速度明显快于 conda SAT 求解。
纯 Python 工具链
mineru-vl-utils、gradio、项目内脚本依赖等。
子项目独立 venv(可选)
PaddleX 等可按 paddlex/README.md 使用 uv venv 单独建环境,与 MinerU 环境分离。
以下依赖来自 MinerU pyproject.toml,通常无需 conda 单独安装:
| 依赖 | uv/pip | 说明 |
|---|---|---|
| torch / torchvision | ✅ | PyPI 提供 CPU/CUDA wheel;GPU 需选对 CUDA 版本 index |
| vllm | ✅ | Linux 上 pip 安装;生产环境也可使用官方 Docker 镜像 |
| onnxruntime | ✅ | wheel 自带推理后端 |
| opencv-python | ✅ | wheel 自带 OpenCV;Linux 无头环境可能还需系统 libGL |
| transformers / accelerate | ✅ | 纯 Python |
| detectron2 | ⚠️ | 可从 git 源码编译;conda 预编译包有时更稳(见 DiT 模块) |
| PaddlePaddle | — | MinerU 核心不需要;模型已转为 PyTorch,见 mineru_处理流程.md |
可选扩展(按后端选择安装):
| extra | 主要依赖 | 平台 |
|---|---|---|
pipeline |
torch, torchvision, onnxruntime | 全平台,支持纯 CPU |
vlm |
torch, transformers | 全平台 |
vllm |
vllm | Linux |
mlx |
mlx-vlm | macOS (Apple Silicon) |
lmdeploy |
lmdeploy | Windows |
gradio |
gradio | 全平台 |
uv 不能替代以下层级;缺了会在 import 或 GPU 初始化阶段失败:
uv 不安装驱动。需本机 nvidia-smi 可用,且驱动版本满足所选 CUDA / torch wheel 要求。
torch + vllm + 驱动 + CUDA 必须对齐。uv 可以装 wheel,但选错版本会导致 CUDA available: False。裸机 Linux GPU 若反复踩坑,可改用:
pytorch-cuda + cudnn;或典型报错:ImportError: libGL.so.1: cannot open shared object file
这是系统库缺失,需用系统包管理器安装,例如 WSL2 / Ubuntu:
sudo apt-get install libgl1-mesa-glx
conda 和 uv 均不能直接解决。
detectron2 等需要本地编译器与 torch 版本匹配。uv 只能触发 pip 编译,不保证在所有平台一次成功。
┌─────────────────────────────────────────────────────────┐
│ uv / pip 能管 │
│ PyPI Python 包:torch, vllm, opencv-python, mineru… │
└─────────────────────────────────────────────────────────┘
↓ 依赖
┌─────────────────────────────────────────────────────────┐
│ uv / pip 管不了(需 conda / apt / brew / 驱动安装) │
│ · NVIDIA 驱动 │
│ · CUDA Toolkit / cuDNN 与驱动对齐 │
│ · libGL、libgomp 等系统 .so │
│ · C++ 编译 toolchain(detectron2 等) │
└─────────────────────────────────────────────────────────┘
| 场景 | 建议 |
|---|---|
| macOS 本地开发 | conda create -n mineru python=3.12 + uv pip install -e '.[all]';VLM 可用 MLX 或远程 vLLM 服务 |
| Linux GPU 生产 | 优先 Docker 官方镜像;裸机则用 conda 对齐 CUDA 栈 + uv 装 mineru |
| 仅 MinerU CLI/API | 可完全 uv venv + uv pip install mineru[all],不必 conda |
| OCR Platform 全家桶(PaddleX + DiT + MinerU) | conda 做环境隔离;各子项目用 uv 装包;Paddle 可单独 uv venv |
| CI / 脚本 | conda run -n mineru ... 避免 activate 未生效 |
| 文档 | 内容 |
|---|---|
| mineru/README.md | MinerU 环境变量、vLLM 服务、批量处理 |
| paddlex/README.md | PaddleX 独立 uv venv 与 paddlepaddle 安装 |
| ocr_tools/universal_doc_parser/dit_support/README.md | detectron2 编译安装 |
项目 .cursor/rules/project-conventions.mdc |
全局约定:conda activate mineru / conda run -n mineru |
可以。MinerU 官方支持 uv venv + uv pip install mineru[all]。本项目因多工具并存、团队已有 mineru conda 环境,仍推荐 conda 做环境壳。
不推荐。MinerU 未提供 conda 配方,conda 直接装 PyPI 包速度慢且易与 channel 冲突。应用 conda 管 Python,uv 管 PyPI 依赖。
参考 MinerU Windows CUDA FAQ。确认 Python 版本 ≤ 3.12,并安装与驱动匹配的 torch CUDA wheel。
典型 mineru 环境中,conda 仅提供 Python + 基础系统库(openssl、zlib 等),torch、vllm、onnxruntime、opencv、detectron2 等均为 pip/uv 安装。可用以下命令自查:
conda list -n mineru | head -30 # conda 层
conda list -n mineru | rg "pypi_0" # pip/uv 层