Spaces:
Running
Running
| #!/usr/bin/env python3 | |
| """ | |
| Pre-installation setup for Hugging Face Spaces | |
| Run this before main app to ensure detectron2 is properly installed | |
| """ | |
| import subprocess | |
| import sys | |
| import os | |
| # Downgrade setuptools first | |
| subprocess.run([sys.executable, "-m", "pip", "install", "setuptools==69.5.1"], check=True) | |
| # Set environment variables | |
| os.environ['CUDA_VISIBLE_DEVICES'] = '' | |
| os.environ['FORCE_CUDA'] = '0' | |
| # Install torch first | |
| subprocess.run([ | |
| sys.executable, "-m", "pip", "install", | |
| "torch==2.0.1+cpu", "torchvision==0.15.2+cpu", | |
| "--index-url", "https://download.pytorch.org/whl/cpu" | |
| ], check=True) | |
| # Install detectron2 dependencies | |
| subprocess.run([ | |
| sys.executable, "-m", "pip", "install", | |
| "numpy==1.24.3", "pillow==10.0.0", "pycocotools", "opencv-python" | |
| ], check=True) | |
| # Clone and install detectron2 | |
| import tempfile | |
| import shutil | |
| with tempfile.TemporaryDirectory() as tmpdir: | |
| # Clone repo | |
| subprocess.run([ | |
| "git", "clone", "https://github.com/facebookresearch/detectron2.git", | |
| os.path.join(tmpdir, "detectron2") | |
| ], check=True) | |
| # Checkout stable version | |
| os.chdir(os.path.join(tmpdir, "detectron2")) | |
| subprocess.run(["git", "checkout", "v0.6"], check=True) | |
| # Install without build isolation | |
| subprocess.run([ | |
| sys.executable, "-m", "pip", "install", | |
| "--no-build-isolation", "." | |
| ], check=True) | |
| print("Pre-installation complete!") | |