119 lines
3.8 KiB
Python
119 lines
3.8 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
"""
|
|||
|
|
VideoLingo 快速安装脚本 - 使用清华大学镜像源
|
|||
|
|
解决PyTorch等大型包下载缓慢的问题
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
import subprocess
|
|||
|
|
import sys
|
|||
|
|
import os
|
|||
|
|
from rich.console import Console
|
|||
|
|
from rich.panel import Panel
|
|||
|
|
from rich.progress import track
|
|||
|
|
import time
|
|||
|
|
|
|||
|
|
console = Console()
|
|||
|
|
|
|||
|
|
def run_command(cmd, description=""):
|
|||
|
|
"""执行命令并显示进度"""
|
|||
|
|
console.print(f"🚀 {description}", style="bold green")
|
|||
|
|
console.print(f"执行命令: {cmd}", style="dim")
|
|||
|
|
|
|||
|
|
try:
|
|||
|
|
result = subprocess.run(cmd, shell=True, check=True,
|
|||
|
|
capture_output=True, text=True)
|
|||
|
|
console.print("✅ 完成", style="bold green")
|
|||
|
|
return True
|
|||
|
|
except subprocess.CalledProcessError as e:
|
|||
|
|
console.print(f"❌ 错误: {e}", style="bold red")
|
|||
|
|
console.print(f"输出: {e.stdout}", style="dim")
|
|||
|
|
console.print(f"错误: {e.stderr}", style="dim")
|
|||
|
|
return False
|
|||
|
|
|
|||
|
|
def main():
|
|||
|
|
console.print(Panel.fit("🎯 VideoLingo 快速安装 - 清华镜像版", style="bold blue"))
|
|||
|
|
|
|||
|
|
# 1. 首先配置pip使用清华镜像
|
|||
|
|
console.print("📦 配置pip使用清华大学镜像源...")
|
|||
|
|
pip_config_cmd = """
|
|||
|
|
mkdir -p ~/.pip
|
|||
|
|
cat > ~/.pip/pip.conf << EOF
|
|||
|
|
[global]
|
|||
|
|
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
|
|||
|
|
[install]
|
|||
|
|
trusted-host = pypi.tuna.tsinghua.edu.cn
|
|||
|
|
EOF
|
|||
|
|
"""
|
|||
|
|
run_command(pip_config_cmd, "配置pip镜像源")
|
|||
|
|
|
|||
|
|
# 2. 先停止当前的pytorch下载(如果正在进行)
|
|||
|
|
console.print("⏹️ 准备重新安装PyTorch...")
|
|||
|
|
|
|||
|
|
# 3. 安装PyTorch及相关组件(使用清华镜像)
|
|||
|
|
pytorch_packages = [
|
|||
|
|
"torch==2.0.0+cu118",
|
|||
|
|
"torchvision==0.15.0+cu118",
|
|||
|
|
"torchaudio==2.0.0+cu118"
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
pytorch_cmd = f"""pip install {' '.join(pytorch_packages)} \\
|
|||
|
|
-i https://pypi.tuna.tsinghua.edu.cn/simple/ \\
|
|||
|
|
--extra-index-url https://download.pytorch.org/whl/cu118 \\
|
|||
|
|
--timeout 300"""
|
|||
|
|
|
|||
|
|
if not run_command(pytorch_cmd, "安装PyTorch CUDA版本"):
|
|||
|
|
console.print("⚠️ PyTorch安装失败,尝试CPU版本...", style="yellow")
|
|||
|
|
cpu_cmd = "pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple/"
|
|||
|
|
run_command(cpu_cmd, "安装PyTorch CPU版本")
|
|||
|
|
|
|||
|
|
# 4. 安装其他可能需要的依赖
|
|||
|
|
other_packages = [
|
|||
|
|
"transformers",
|
|||
|
|
"accelerate",
|
|||
|
|
"datasets",
|
|||
|
|
"tokenizers",
|
|||
|
|
"huggingface-hub",
|
|||
|
|
"safetensors",
|
|||
|
|
"numpy",
|
|||
|
|
"opencv-python",
|
|||
|
|
"pillow",
|
|||
|
|
"matplotlib",
|
|||
|
|
"scikit-learn",
|
|||
|
|
"pandas",
|
|||
|
|
"tqdm",
|
|||
|
|
"psutil",
|
|||
|
|
"ffmpeg-python",
|
|||
|
|
"whisper-openai",
|
|||
|
|
"openai",
|
|||
|
|
"anthropic"
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
console.print("📦 安装其他常用AI/ML依赖包...")
|
|||
|
|
for package in track(other_packages, description="安装依赖包..."):
|
|||
|
|
cmd = f"pip install {package} -i https://pypi.tuna.tsinghua.edu.cn/simple/ --timeout 180"
|
|||
|
|
subprocess.run(cmd, shell=True, capture_output=True)
|
|||
|
|
time.sleep(0.1) # 避免过快请求
|
|||
|
|
|
|||
|
|
# 5. 验证安装
|
|||
|
|
console.print("🔍 验证PyTorch安装...")
|
|||
|
|
verify_cmd = """python -c "
|
|||
|
|
import torch
|
|||
|
|
print(f'PyTorch版本: {torch.__version__}')
|
|||
|
|
print(f'CUDA可用: {torch.cuda.is_available()}')
|
|||
|
|
if torch.cuda.is_available():
|
|||
|
|
print(f'CUDA版本: {torch.version.cuda}')
|
|||
|
|
print(f'GPU数量: {torch.cuda.device_count()}')
|
|||
|
|
print(f'当前GPU: {torch.cuda.get_device_name(0)}')
|
|||
|
|
"
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
run_command(verify_cmd, "验证PyTorch安装")
|
|||
|
|
|
|||
|
|
console.print(Panel.fit("🎉 安装完成!现在可以继续运行VideoLingo了", style="bold green"))
|
|||
|
|
console.print("💡 提示: 如果还有其他包需要安装,它们将自动使用清华镜像源", style="dim")
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
main()
|
|||
|
|
|