#!/bin/bash # Download 32-bit ARM compatible libraries with forced architecture set -e echo "=======================================" echo " 32-BIT ARM LIBRARY DOWNLOADER" echo "=======================================" echo "" # Remove existing 32-bit folder to ensure clean download if [ -d "req_libraries_32bit" ]; then echo "🗑️ Removing existing req_libraries_32bit for clean download..." rm -rf req_libraries_32bit fi # Create fresh directory mkdir -p req_libraries_32bit echo "📦 Downloading 32-bit ARM compatible packages..." echo " Target architecture: linux_armv7l" echo "" # Download with explicit 32-bit ARM platform targeting echo "🔄 Downloading with forced 32-bit architecture..." pip download -r requirements.txt -d req_libraries_32bit/ \ --platform linux_armv7l \ --only-binary=:all: \ --python-version 311 \ --abi cp311 echo "" echo "📊 Download results:" WHEEL_COUNT=$(ls req_libraries_32bit/*.whl 2>/dev/null | wc -l || echo "0") echo " Wheel files: $WHEEL_COUNT" if [ "$WHEEL_COUNT" -gt 0 ]; then echo "" echo "🔍 Key 32-bit packages:" if ls req_libraries_32bit/bcrypt*.whl >/dev/null 2>&1; then BCRYPT_FILE=$(basename $(ls req_libraries_32bit/bcrypt*.whl | head -1)) echo " 🔐 BCRYPT: $BCRYPT_FILE" if [[ "$BCRYPT_FILE" == *"armv7l"* ]]; then echo " ✅ Correct 32-bit architecture" else echo " ⚠️ Architecture unclear" fi fi if ls req_libraries_32bit/pillow*.whl >/dev/null 2>&1; then PILLOW_FILE=$(basename $(ls req_libraries_32bit/pillow*.whl | head -1)) echo " 🖼️ PILLOW: $PILLOW_FILE" if [[ "$PILLOW_FILE" == *"armv7l"* ]]; then echo " ✅ Correct 32-bit architecture" fi fi echo "" echo "✅ 32-bit libraries download completed!" echo "" echo "📋 Next steps:" echo " 1. Copy this folder to your 32-bit Raspberry Pi" echo " 2. Run: ./install_32bit.sh" else echo "❌ No wheel files downloaded" echo "" echo "💡 Troubleshooting:" echo " • Check internet connection" echo " • Verify requirements.txt exists" echo " • Some packages may not have 32-bit wheels available" fi