File size: 3,295 Bytes
40201fe | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | #!/bin/bash
################################################################################
# Kimodo 环境初始化(完全独立版本)
################################################################################
set -e
WORKSPACE_DIR="/workspace"
ENV_DIR="${WORKSPACE_DIR}/env"
PYTHON_BIN="${ENV_DIR}/kimodo/bin/python"
# 颜色输出
print_info() {
echo -e "\033[32m[INFO]\033[0m $1"
}
print_error() {
echo -e "\033[31m[ERROR]\033[0m $1"
}
print_step() {
echo -e "\033[36m[STEP]\033[0m $1"
}
# 检查环境
check_env() {
if [ ! -f "${PYTHON_BIN}" ]; then
print_error "Python 环境未找到: ${PYTHON_BIN}"
exit 1
fi
print_info "Python 环境: ${PYTHON_BIN}"
print_info "Python 版本: $(${PYTHON_BIN} --version)"
}
# 检查系统工具
check_system_tools() {
print_step "检查系统工具..."
local missing=()
for tool in gcc g++ make cmake tar gzip bash; do
if ! command -v $tool &> /dev/null; then
missing+=($tool)
fi
done
if [ ${#missing[@]} -gt 0 ]; then
print_info "缺少系统工具: ${missing[*]}"
print_info "安装命令: sudo apt-get install -y build-essential cmake tar gzip"
echo ""
print_info "注意:这些工具需要目标机器已安装"
else
print_info "所有系统工具已安装"
fi
# 检查 CUDA
if command -v nvidia-smi &> /dev/null; then
print_info "检测到 CUDA: $(nvidia-smi --query-gpu=name --format=csv,noheader | head -1)"
else
print_info "未检测到 CUDA,将使用 CPU 模式"
fi
}
# 显示目录结构
show_structure() {
print_step "目录结构:"
echo ""
echo "${WORKSPACE_DIR}/"
echo "├── env/kimodo/ # Python 环境 (~9GB)"
echo "│ ├── bin/ # Python 和相关命令"
echo "│ ├── lib/ # Python 库"
echo "│ └── ..."
echo "├── kimodo/ # 项目代码"
echo "├── deps/ # 依赖信息"
echo "└── start_standalone.sh # 启动脚本"
echo ""
}
# 验证环境
verify_env() {
print_step "验证环境..."
${PYTHON_BIN} << VERIFY_EOF
import sys
print(f"Python: {sys.version}")
try:
import torch
print(f"✓ PyTorch: {torch.__version__}")
print(f"✓ CUDA: {'可用' if torch.cuda.is_available() else '不可用'}")
except ImportError as e:
print(f"✗ PyTorch: {e}")
try:
import kimodo
print(f"✓ Kimodo: 导入成功")
except ImportError as e:
print(f"✗ Kimodo: {e}")
print("\n验证完成")
VERIFY_EOF
}
# 主函数
main() {
echo ""
echo "======================================================================"
echo " Kimodo 环境初始化"
echo "======================================================================"
echo ""
check_env
check_system_tools
show_structure
verify_env
echo ""
print_info "======================================================================"
print_info "环境初始化完成!"
print_info ""
print_info "启动项目: ./start_standalone.sh"
print_info "======================================================================"
echo ""
}
main
|