45 lines
1.4 KiB
Bash
45 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
# Create a venv on /data2 and install Python deps (mooncake + grpc + bench tooling).
|
|
set -euo pipefail
|
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/env.sh"
|
|
|
|
if [ ! -d "$VENV" ]; then
|
|
echo "[py] creating venv at $VENV"
|
|
python3 -m venv "$VENV"
|
|
fi
|
|
# shellcheck disable=SC1091
|
|
source "$VENV/bin/activate"
|
|
|
|
python -m pip install --upgrade pip wheel setuptools >/dev/null
|
|
|
|
echo "[py] installing core deps"
|
|
pip install \
|
|
"mooncake-transfer-engine==0.3.11.post1" \
|
|
"grpcio==1.62.3" "grpcio-tools==1.62.3" "protobuf>=4.25,<5" \
|
|
"numpy" "requests" "aiohttp" "rich" "matplotlib" "pyyaml" "prometheus-client"
|
|
|
|
echo "[py] verifying mooncake imports"
|
|
python - <<'PY'
|
|
import importlib, sys
|
|
ok = True
|
|
for m in ("mooncake.engine", "mooncake.store"):
|
|
try:
|
|
mod = importlib.import_module(m)
|
|
print(f" OK {m} -> {getattr(mod,'__file__','?')}")
|
|
except Exception as e:
|
|
ok = False
|
|
print(f" ERR {m}: {e}")
|
|
try:
|
|
from mooncake.store import MooncakeDistributedStore, ReplicateConfig # noqa
|
|
print(" OK MooncakeDistributedStore + ReplicateConfig")
|
|
except Exception as e:
|
|
print(f" WARN MooncakeDistributedStore/ReplicateConfig: {e}")
|
|
try:
|
|
from mooncake.engine import TransferEngine
|
|
print(" OK TransferEngine")
|
|
except Exception as e:
|
|
print(f" WARN TransferEngine: {e}")
|
|
sys.exit(0 if ok else 1)
|
|
PY
|
|
echo "[py] done"
|