58 lines
2.2 KiB
PowerShell
58 lines
2.2 KiB
PowerShell
#Requires -Version 5.1
|
|
<#
|
|
Seep 工作台 —— Python 依赖安装
|
|
#>
|
|
[CmdletBinding()]
|
|
param(
|
|
[string]$IndexUrl = '' # 可指定国内源,如 https://pypi.tuna.tsinghua.edu.cn/simple
|
|
)
|
|
|
|
$ErrorActionPreference = 'Continue'
|
|
|
|
function Write-Ok($m) { Write-Host " [OK] $m" -ForegroundColor Green }
|
|
function Write-Warn($m) { Write-Host " [!!] $m" -ForegroundColor Yellow }
|
|
|
|
$py = Get-Command python -ErrorAction SilentlyContinue
|
|
if (-not $py) { Write-Warn '未找到 python'; exit 1 }
|
|
|
|
$pkgs = @(
|
|
@{ Name = 'mcp'; Spec = 'mcp>=1.20,<1.29'; Note = 'seep MCP 运行时(版本上限由 reverselab 约定)' },
|
|
@{ Name = 'pytest'; Spec = 'pytest'; Note = 'apkseep 离线测试套件' },
|
|
@{ Name = 'frida-tools'; Spec = 'frida-tools'; Note = '动态 Hook(可选)' }
|
|
)
|
|
|
|
$failed = @()
|
|
foreach ($p in $pkgs) {
|
|
Write-Host "`n pip install $($p.Spec)" -ForegroundColor Cyan
|
|
Write-Host " 用途: $($p.Note)" -ForegroundColor Gray
|
|
$args = @('-m', 'pip', 'install', '--quiet', $p.Spec)
|
|
if ($IndexUrl -ne '') { $args += @('-i', $IndexUrl) }
|
|
& python @args 2>&1 | Out-Null
|
|
if ($LASTEXITCODE -eq 0) { Write-Ok "$($p.Name) 安装成功" }
|
|
else {
|
|
Write-Warn "$($p.Name) 安装失败,尝试国内源..."
|
|
& python -m pip install --quiet $p.Spec -i 'https://pypi.tuna.tsinghua.edu.cn/simple' 2>&1 | Out-Null
|
|
if ($LASTEXITCODE -eq 0) { Write-Ok "$($p.Name) 安装成功(清华源)" }
|
|
else { Write-Warn "$($p.Name) 安装失败"; $failed += $p.Name }
|
|
}
|
|
}
|
|
|
|
# ---------------------------------------------------------------- 验证
|
|
Write-Host "`n ---------- 验证 ----------" -ForegroundColor White
|
|
try {
|
|
$v = & python -c "import mcp, sys; print('mcp', getattr(mcp,'__version__','?'))" 2>&1
|
|
Write-Ok $v
|
|
} catch { Write-Warn "mcp 导入失败: $_" }
|
|
|
|
try {
|
|
$v = & python -m pytest --version 2>&1 | Select-Object -First 1
|
|
Write-Ok $v
|
|
} catch { Write-Warn 'pytest 不可用' }
|
|
|
|
if ($failed.Count -gt 0) {
|
|
Write-Host "`n 失败: $($failed -join ', ')" -ForegroundColor Yellow
|
|
Write-Host ' 可手动安装: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple <包名>' -ForegroundColor Yellow
|
|
exit 1
|
|
}
|
|
exit 0
|