Files
mnote/services/mineru/setup.ps1
T

68 lines
2.0 KiB
PowerShell
Raw Permalink Normal View History

2025-11-23 10:55:04 +08:00
[CmdletBinding()]
param(
[string]$PythonExe = "python",
[string]$RepoUrl = "https://github.com/opendatalab/MinerU.git",
[string]$Branch = "main",
[string]$InstallDir,
[switch]$ForceClone
)
$ErrorActionPreference = "Stop"
if (-not $InstallDir) {
$InstallDir = Join-Path $PSScriptRoot ".venv"
}
function Test-Command {
param([string]$Name)
if (-not (Get-Command $Name -ErrorAction SilentlyContinue)) {
throw "找不到命令 $Name,请先安装。"
}
}
Test-Command -Name $PythonExe
Test-Command -Name git
Write-Host ">>> 使用 $PythonExe 创建/更新虚拟环境:$InstallDir"
if (-not (Test-Path $InstallDir) -or $ForceClone) {
& $PythonExe -m venv $InstallDir | Out-Null
}
$venvPython = Join-Path $InstallDir "Scripts/python.exe"
if (-not (Test-Path $venvPython)) {
throw "未找到虚拟环境 Python$venvPython"
}
Write-Host ">>> 安装 pip 依赖"
& $venvPython -m pip install -U pip setuptools wheel | Out-Null
$extraReq = Join-Path $PSScriptRoot "requirements.txt"
if (Test-Path $extraReq) {
& $venvPython -m pip install -r $extraReq
}
$srcDir = Join-Path $PSScriptRoot "src"
if (-not (Test-Path $srcDir) -or $ForceClone) {
if (Test-Path $srcDir) {
Remove-Item -Recurse -Force $srcDir
}
Write-Host ">>> Clone MinerU 仓库:$RepoUrl -> $srcDir"
git clone --branch $Branch $RepoUrl $srcDir | Out-Null
} else {
Write-Host ">>> 更新 $srcDir"
git -C $srcDir fetch --all --prune | Out-Null
git -C $srcDir checkout $Branch | Out-Null
git -C $srcDir pull | Out-Null
}
$requirementFile = Join-Path $srcDir "requirements.txt"
if (Test-Path $requirementFile) {
Write-Host ">>> 安装 MinerU 官方依赖"
& $venvPython -m pip install -r $requirementFile
} else {
Write-Warning "未找到 $requirementFile,请参照官方 README 手动安装依赖。"
}
Write-Host ">>> 准备完成"
Write-Host "虚拟环境:$InstallDir"
Write-Host "仓库路径:$srcDir"
Write-Host "可执行 ./start.ps1 -Host 127.0.0.1 -Port 18888 启动 MinerU 服务。"