百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

DotsOCR 环境搭建指南_dot installation

itomcoil 2025-09-18 20:14 1 浏览

DotsOCR 环境搭建指南

支持平台:Linux(推荐)或 Windows + WSL2
项目地址:
https://github.com/rednote-hilab/dots.ocr


一、Windows 用户:启用 WSL 并安装 Ubuntu

仅适用于 Windows 10 版本 2004 及以上(内核版本 ≥ 19041)或 Windows 11。

1. 检查系统版本

2. 启用 WSL 功能

以管理员身份运行 PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

重启计算机后继续下一步。

3. 安装 Ubuntu 发行版

  1. 打开 Microsoft Store
  2. 搜索 Ubuntu
  3. 推荐选择长期支持版本(如 Ubuntu 18.04.5 LTS 或 20.04 LTS)
  4. 下载并启动,按提示设置用户名和密码

成功标志:终端中出现 username@hostname:~$ 提示符。


二、在 Ubuntu 中安装 Conda

1. 下载 Miniconda

访问官网获取最新链接,或执行以下命令(以 Python 3.9 为例):

wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-x86_64.sh

2. 赋予执行权限并安装

chmod +x Miniconda3-py39_4.12.0-Linux-x86_64.sh
./Miniconda3-py39_4.12.0-Linux-x86_64.sh

按提示完成安装(接受协议、选择路径等)。

3. 配置环境变量

编辑 ~/.bashrc 文件:

vi ~/.bashrc

在文件末尾添加:

export PATH=$HOME/miniconda3/bin:$PATH

保存并生效:

source ~/.bashrc

4. 验证安装

conda --version

输出类似:conda 4.12.0 表示成功。


三、创建 DotsOCR 虚拟环境

1. 创建并激活环境

conda create -n dots_ocr python=3.12
conda activate dots_ocr

推荐使用 Python 3.12 以兼容最新依赖。


四、克隆项目代码

重要提醒:项目名为 dots.ocr,但后续模型路径不能含 .,因此需重命名!

git clone https://github.com/rednote-hilab/dots.ocr.git
mv dots.ocr dots_ocr  # 将目录名中的点改为下划线
cd dots_ocr

此时项目路径为:./dots_ocr/


五、安装 PyTorch 与 CUDA 支持

1. 查看 CUDA 版本

nvidia-smi

查看顶部显示的 CUDA Version(例如 12.8)

2. 安装对应版本的 PyTorch(示例为 CUDA 12.8)

pip install torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 \
  --index-url https://download.pytorch.org/whl/cu128

若你的 CUDA 是 12.4,请将 cu128 改为 cu124


六、安装 CUDA 工具链(解决编译问题)

conda install cuda-toolkit -c nvidia

用于支持 flash-attn 等库的本地编译。


七、安装项目依赖

pip install -e .

-e 表示可编辑模式,便于开发调试。


八、下载模型权重

再次强调:模型保存目录名不能包含 .

使用 ModelScope(国内推荐)

python tools/download_model.py --type modelscope

默认会下载到:

./weights/DotsOCR/

建议保持此目录名为 DotsOCR(无点号)


九、使用 vLLM 部署(推荐方式)

1. 设置环境变量

export hf_model_path=./weights/DotsOCR
export PYTHONPATH=$(dirname "$hf_model_path"):$PYTHONPATH

2. 注册自定义模型模块到 vLLM

修改 vllm 入口脚本,使其加载 DotsOCR 自定义模型类。

sed -i '/^from vllm\.entrypoints\.cli\.main import main$/a\
from DotsOCR import modeling_dots_ocr_vllm' `which vllm`

注意事项:

  • 确保 DotsOCR 是你的模型目录名(不含 .)
  • 如果你用了 dots_ocr,请替换:sed -i 's/DotsOCR/dots_ocr/g' `which vllm`
  • 查看 vllm 路径:which vllm
  • 若权限不足,尝试 sudo 或检查虚拟环境权限。

3. 启动 vLLM 服务

CUDA_VISIBLE_DEVICES=0 \
vllm serve ${hf_model_path} \
  --tensor-parallel-size 1 \
  --gpu-memory-utilization 0.95 \
  --chat-template-content-format string \
  --served-model-name DotsOCR \
  --trust-remote-code

服务默认监听 http://localhost:8000


十、测试 vLLM 推理接口

python ./demo/demo_vllm.py --prompt_mode prompt_layout_all_en

支持不同 --prompt_mode 参数,请根据需求调整。


十一、启动 Web API 服务(Flask + vLLM)

复制示例 API 文件至项目目录(若不存在):

cp ./demo/vllm_flask_api.py ./demo/flask_api.py  # 如有需要

启动服务:

python ./demo/vllm_flask_api.py

默认端口:5080
接口地址示例:http://<your-server-ip>:5080/inference


十二、Hugging Face 原生推理(可选)

如果你不想使用 vLLM,也可以直接运行原生 HF 推理:

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "./weights/DotsOCR",
    trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained("./weights/DotsOCR", trust_remote_code=True)

同样要求:路径不含 .,且设置 trust_remote_code=True


常见问题与解决方案

问题

原因

解决方法

ModuleNotFoundError: No module named 'DotsOCR'

路径含 . 或 PYTHONPATH 未设置

重命名目录为 DotsOCR,并导出 PYTHONPATH

Permission denied on which vllm

脚本不可写

使用 sudo 或手动编辑该文件

flash-attn 编译失败

缺少 CUDA 工具链

运行 conda install cuda-toolkit

vLLM 启动报错 trust_remote_code required

未启用远程代码信任

添加 --trust-remote-code 参数


最终建议

  • 所有涉及路径的名称避免使用 .(如 dots.ocr → dots_ocr )
  • 推荐使用 vLLM 0.9.1+ 版本部署
  • 国内用户优先使用 --type modelscope 下载模型



相关推荐

ELK架构部署以及应用_elk部署方案

一、ELK介绍ELK代表的是Elasticsearch,Logstash,KibanaElasticsearch:日志存储、搜索分析功能Logstash:数据收集,日志收集系统Kibana:数据可视化...

本地部署 DeepSeek Janus Pro 文生图大模型

Hello,大家新年好。在这个春节期间最火的显然是DeepSeek了。据不负责统计朋友圈每天给我推送关于DeepSeek的文章超过20篇。打开知乎跟B站也全是DeepSeek相关的内容。...

DotsOCR 环境搭建指南_dot installation

DotsOCR环境搭建指南支持平台:Linux(推荐)或Windows+WSL2项目地址:https://github.com/rednote-hilab/dots.ocr一、Windo...

spark+python环境搭建_pycharm配置spark环境

最近项目需要用到spark大数据相关技术,周末有空spark环境搭起来...目标spark,python运行环境部署在linux服务器个人通过vscode开发通过远程python解释器执行代码准备...

window下sublimeIDE安装python_win10安装python

window下开发python使用sublimeIDE1安装sublimehttp://www.sublimetext.com/22安装PackageControl提供了安装sublime...

JupyterLab 快速环境配置 (一)_jupyter的环境配置

JupyterLab快速环境配置(一)一只小胖子[互联网运营|直播电商|广告行业]从业者软件说明:JupyterLab是一个基于web浏览器的在线文档/代码运行集成环境,支持文档显示/代...

栋察宇宙(二十一):Python 文件操作全解析

分享乐趣,传播快乐,增长见识,留下美好。亲爱的您,这里是LearingYard学苑!今天小编为大家带来“Python文件操作全解析”欢迎您的访问!Sharethefun,spreadthe...

外婆都能学会的Python教程(十八):Python读取配置文件绘制图形

前言Python是一个非常容易上手的编程语言,它的语法简单,而且功能强大,非常适合初学者学习,它的语法规则非常简单,只要按照规则写出代码,Python解释器就可以执行。下面是Python的入门教程介绍...

Python自动化办公应用学习笔记38—文件读写方法2

1.文件迭代文件对象是可迭代的,可以逐行迭代文件。withopen('data.txt','r')asfile:forlineinfile:#逐行迭...

简析python 文件操作_python文件内容操作

一、打开并读文件1、file=open('打开文件的路径','打开文件的权限')#打开文件并赋值给file#默认权限为r及读权限str=read(num)读文件并放到字符串变量中,其中num表...

如何在Python中保存文件?如何读取文件?示例代码

Python中保存文件是一项非常基本的任务,它允许我们将程序输出保存到磁盘上,以便以后使用或与他人共享。本文将介绍如何在Python中保存文件的方法,以及如何读取已有的文件和为代码添加注释。使用ope...

高效办公:Python处理excel文件,摆脱无效办公

一、Python处理excel文件1.两个头文件importxlrdimportxlwt其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入。2.读取exce...

python中12个文件处理高效技巧,不允许你还不知道

在Python中高效处理文件是日常开发中的核心技能,尤其是处理大文件或需要高性能的场景。以下是经过实战验证的高效文件处理技巧,涵盖多种常见场景:一、基础高效操作1.始终使用上下文管理器(with语句)...

python 目录结构的规划,应该先建立好

上一篇文章说了【函数、类、模块、包】,现在说一下python一般工程的目录结构一般习惯这样规划目录,在开始一个工程前,最好先把目录结构规划好。一、为什么要有一个比较清晰的目录结构此处省略一万字....

和尧名大叔一起从0开始学Python编程-简单读写文件

0基础自学编程是很痛苦的一件事情,所以我想把自己学习的这个过程记录下来,让想学编程的人少走弯路,大叔文化程度较低,可能会犯一些错误,欢迎大家督促我。今天,我们来学习一下用Python简单读写文件,这里...