Spaces:
Running
on
Zero
Running
on
Zero
| #!/usr/bin/env python3 | |
| """ | |
| Console script to install CroCo RoPE extension. | |
| """ | |
| import os | |
| import subprocess | |
| import sys | |
| from pathlib import Path | |
| def install_croco_rope(): | |
| """Install CroCo RoPE extension.""" | |
| try: | |
| # Find the project root (where setup.py is located) | |
| script_dir = Path(__file__).parent | |
| project_root = script_dir.parent | |
| curope_path = project_root / "uniception" / "models" / "libs" / "croco" / "curope" | |
| if curope_path.exists(): | |
| print("Installing CroCo RoPE extension...") | |
| original_cwd = os.getcwd() | |
| try: | |
| os.chdir(curope_path) | |
| subprocess.check_call([sys.executable, "setup.py", "build_ext", "--inplace"]) | |
| print("CroCo RoPE extension installed successfully!") | |
| return True | |
| except subprocess.CalledProcessError as e: | |
| print(f"Warning: Failed to install CroCo RoPE extension: {e}") | |
| print("You can install it later by running:") | |
| print(f"cd {curope_path} && python setup.py build_ext --inplace") | |
| return False | |
| finally: | |
| os.chdir(original_cwd) | |
| else: | |
| print("Warning: CroCo RoPE source code not found.") | |
| print(f"Expected location: {curope_path}") | |
| return False | |
| except Exception as e: | |
| print(f"Warning: Error during CroCo RoPE installation: {e}") | |
| return False | |
| def main(): | |
| """Main entry point for the CroCo RoPE installation script.""" | |
| print("UniCeption CroCo RoPE Extension Installer") | |
| print("=" * 45) | |
| success = install_croco_rope() | |
| if success: | |
| print("\n✓ CroCo RoPE extension installation completed successfully!") | |
| sys.exit(0) | |
| else: | |
| print("\n⚠ CroCo RoPE extension installation failed or skipped.") | |
| print("This is typically due to missing CUDA development tools.") | |
| print("The extension is optional and UniCeption will work without it.") | |
| sys.exit(1) | |
| if __name__ == "__main__": | |
| main() | |