Repository navigation
Expand file tree
/
Copy pathsetup-environment.sh
More file actions
executable file
·98 lines (83 loc) · 2.57 KB
/
Copy pathsetup-environment.sh
File metadata and controls
executable file
·98 lines (83 loc) · 2.57 KB
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
#!/bin/bash
# TinyTorch Environment Setup
# Single canonical way to set up TinyTorch for development
set -e # Exit on error
echo "🔥 TinyTorch Environment Setup"
echo "================================"
echo ""
# Detect system
OS=$(uname -s)
ARCH=$(uname -m)
echo "📋 System Info:"
echo " OS: $OS"
echo " Architecture: $ARCH"
echo ""
# Check if on Apple Silicon
if [ "$OS" = "Darwin" ] && [ "$ARCH" = "arm64" ]; then
echo "✅ Detected Apple Silicon (arm64)"
PYTHON_CMD="arch -arm64 /usr/bin/python3"
elif [ "$OS" = "Darwin" ]; then
echo "⚠️ On macOS but not arm64 - using system Python"
PYTHON_CMD="/usr/bin/python3"
else
echo "📦 Using system Python"
PYTHON_CMD="python3"
fi
# Create venv
echo ""
echo "🐍 Creating virtual environment..."
if [ -d ".venv" ]; then
echo "⚠️ .venv already exists - removing it"
rm -rf .venv
fi
$PYTHON_CMD -m venv .venv
echo "✅ Virtual environment created"
# Activate and install
echo ""
echo "📦 Installing dependencies..."
if [ "$OS" = "Darwin" ] && [ "$ARCH" = "arm64" ]; then
# On Apple Silicon, use arch prefix for all pip commands
arch -arm64 .venv/bin/pip install --upgrade pip -q
arch -arm64 .venv/bin/pip install -r requirements.txt -q
arch -arm64 .venv/bin/pip install -e . -q
else
.venv/bin/pip install --upgrade pip -q
.venv/bin/pip install -r requirements.txt -q
.venv/bin/pip install -e . -q
fi
echo "✅ Dependencies installed"
# Verify
echo ""
echo "🔍 Verifying installation..."
if [ "$OS" = "Darwin" ] && [ "$ARCH" = "arm64" ]; then
VENV_ARCH=$(arch -arm64 .venv/bin/python3 -c "import platform; print(platform.machine())")
else
VENV_ARCH=$(.venv/bin/python3 -c "import platform; print(platform.machine())")
fi
echo " Python architecture: $VENV_ARCH"
# Create activation helper
cat > activate.sh << 'EOF'
#!/bin/bash
# TinyTorch activation helper
if [ "$(uname -s)" = "Darwin" ] && [ "$(uname -m)" = "arm64" ]; then
# On Apple Silicon, ensure arm64
export TINYTORCH_ARCH="arm64"
alias python='arch -arm64 .venv/bin/python3'
alias pip='arch -arm64 .venv/bin/pip'
source .venv/bin/activate
echo "🔥 TinyTorch environment activated (arm64)"
else
source .venv/bin/activate
echo "🔥 TinyTorch environment activated"
fi
echo "💡 Try: tito system doctor"
EOF
chmod +x activate.sh
echo ""
echo "✅ Setup complete!"
echo ""
echo "🚀 Next steps:"
echo " 1. source activate.sh # Activate environment"
echo " 2. tito system doctor # Verify setup"
echo " 3. tito module view 01_tensor # Start learning"
echo ""