Files
mnote/services/mineru/setup.ps1
T
2025-11-23 10:55:04 +08:00

68 lines
2.0 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[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 服务。"