当前位置: 首页 > news >正文

MinerU可视化界面程序部署(Windows环境)

前提是要安装好MinerU,才能部署可视化程序(这个可视化程序的源码是MinerU自带的),安装MinerU的步骤参考:

MinerU安装(pdf转markdown、json)-CSDN博客

下面进行可视化界面的部署操作(在Windows环境部署):

前端程序打包

MinerU安装好之后,打开vscode

进入到项目 \MinerU\projects\web路径下面(这是前端项目,代码是react程序)

执行打包命令,将前端程序打包

npm run build

打包完成,会生成dist目录

前端项目不需要部署,只需要打包生成dist目录及其文件就可以了,因为后端服务会自动引用前端的dist目录中的文件。

后端服务启动

启动方式1:bat脚本启动

新建MinerU.bat,内容如下:

@echo off
chcp 65001 > nulREM 进入工作目录
setlocal enabledelayedexpansion
cd /d %~dp0REM 激活名为mineru的conda环境
call conda.bat activate mineru
echo Conda 环境激活成功REM 启动程序
python app.py
endlocal

将这个bat文件,放项目MinerU\projects\web_demo\web_demo 目录下面,双击执行即可直接启动项目,文件所在位置如下:

方式2:Windows服务方式启动

后端服务(源码是Python),用WinSW工具,将其改为Windows服务的形式启动。

下载WinSW的exe文件,下载地址:

Releases · winsw/winsw · GitHub

下载后是这样:

把文件名称改为MinerUService.exe

新建bat脚本文件MinerU.bat 内容为:

@echo off
chcp 65001 > nulREM 进入工作目录
setlocal enabledelayedexpansion
cd /d %~dp0REM 激活名为mineru的conda环境
call conda.bat activate mineru
echo Conda 环境激活成功REM 启动程序
python app.py
endlocal

说明:这里的canda不是必须的,因为我本地使用了canda,并且Python程序要在canda的mineru这个环境下面跑才不会报错,所用到的Python包,都是安装在名称为mineru的虚拟环境中。

新建WinSW的配置文件,名字需要与WinSW.exe修改后的名称相同(用来定义服务的相关信息):MinerUService.yml 内容为:

id: mineru-service
name: MinerU后台服务
description: MinerU后台启动Python服务
executable: D:\ProgramData\MinerU\projects\web_demo\web_demo\MinerU.bat 

id、name、description均是用来描述服务的信息,最后一行配置的是bat文件的路径。

将MinerUService.exe、MinerU.bat、MinerUService.yml,三个文件,放到MinerU\projects\web_demo\web_demo路径下面,如图所示:

打开cmd命令行窗口,进入到 MinerU\projects\web_demo\web_demo 路径下面,执行服务的安装命令

.\MinerUService.exe install

安装好之后,启动服务

.\MinerUService.exe start

整体执行过程如下:

此时,在服务列表里面,就可以看到刚才安装的MinerU启动服务的信息:

系统环境变量配置

需要新增一个系统环境变量,因为程序代码中会用到这个环境变量,如果不配置,程序启动会报错。

名称:MINERU_TOOLS_CONFIG_JSON

值:C:\Users\joshq\magic-pdf.json

值对应的路径是mineru安装后,自动生成的一个配置文件地址,一般在C盘,用户目录中,以我自己的电脑为例,路径如下:

服务安装过程中如果出错,可以看log文件里面的信息,err里面记录的是错误信息:

MinerU访问:

可以通过 ip: 5559,进行访问(后端服务默认5559端口):

相关文章:

  • RSA加解密实战指南:Java与JavaScript实现详解 + 在线工具推荐
  • 探索付费社群的成功之道:生财与群响的深度解析
  • Pandas:Series和DataFrame的概念、常用属性和方法
  • 【漫话机器学习系列】270.KNN算法(K-Nearest Neighbors)
  • 【python进阶知识】Day 31 文件的规范拆分和写法
  • 工业数据治理标准规范深度解析
  • 150.WEB渗透测试-MySQL基础(五)
  • JAVA打飞机游戏设计与实现(论文+源代码)【源码+文档+部署】
  • Splitpanes (可调整大小的面板分割布局)插件应用
  • ALSA 插件是什么? PortAudio 断言失败是什么意思?
  • (05)数字化转型之生产制造:从通常的离散制造到柔性化生产的全景指南
  • 计算机视觉与深度学习 | PSO-MVMD粒子群算法优化多元变分模态分解(Matlab完整代码和数据)
  • TDengine 更多安全策略
  • # 怎么让 java -jar example.jar 产生的日志输出到指定文件
  • 经典案例 | 数字化转型新范式:规划引领,专题突破
  • 轻量级高性能推理引擎MNN 学习笔记 04.线性回归
  • 手动导出Docker进行并自动执行脚本命令的操作方法
  • uni-app项目从0-1基础架构搭建全流程
  • 一些C++入门基础
  • 二维码外面套一个黄色圆圈 之间间隙太大
  • 王晋卿读《酒的精神》︱乏味时代的有味之思
  • 上海电视节发布海报、宣传片:三十而励,光影新程
  • 4名中学生同服处方药后身体不适,一心堂一药店未凭处方售药被罚1万元
  • 张宇祥已任上海闵行区委常委、副区长
  • 中美贸易代表会谈后是否已确定下一次会谈?外交部回应
  • “打铁”热邂逅江南水乡,长三角首个国际级铁三赛事有何不同